

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de la detección automática
<a name="AutoDiscovery.Using"></a>

Para empezar a usar la detección automática con ElastiCache para Memcached, siga estos pasos:
+ [Obtención del punto de conexión de configuración](#AutoDiscovery.Using.ConfigEndpoint)
+ [Descarga de ElastiCache Cluster Client](#AutoDiscovery.Using.ClusterClient)
+ [Modificación de su programa de aplicación](#AutoDiscovery.Using.ModifyApp)

## Obtención del punto de conexión de configuración
<a name="AutoDiscovery.Using.ConfigEndpoint"></a>

Para conectarse a un clúster, los programas cliente deben conocer el punto de conexión de configuración del clúster. Consulte el tema [Búsqueda de puntos de conexión de un clúster (consola) (Memcached)](Endpoints.md#Endpoints.Find.Memcached)

También puede usar el comando `aws elasticache describe-cache-clusters` con el parámetro `--show-cache-node-info`:

Sea cual sea el método que use para buscar los puntos de enlace del clúster, el punto de conexión de configuración siempre tendrá la cadena **.cfg** en su dirección.

**Example Búsqueda de puntos de enlace con la AWS CLI de ElastiCache**  
Para Linux, macOS o Unix:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
Para Windows:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
Esta operación produce un resultado similar al siguiente (formato JSON):  

```
{
    "CacheClusters": [
        {
            "Engine": "memcached", 
            "CacheNodes": [
                {
                    "CacheNodeId": "0001", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1e"
                }, 
                {
                    "CacheNodeId": "0002", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1a"
                }
            ], 
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [], 
                "CacheParameterGroupName": "default.memcached1.4", 
                "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "Multiple", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 2, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", 
            "CacheNodeType": "cache.r3.large"
        }
    ]
}
```

## Descarga de ElastiCache Cluster Client
<a name="AutoDiscovery.Using.ClusterClient"></a>

Para sacar el máximo partido a la detección automática, los programas de cliente deben utilizar *ElastiCache Cluster Client*. ElastiCache Cluster Client se encuentra disponible para Java, PHP y .NET, y contiene toda la lógica necesaria a fin de detectar todos los nodos de caché y conectarse a ellos.

**Para descargar ElastiCache Cluster Client**

1. Inicie sesión en la consola de administración de AWS y abra la consola de ElastiCache en [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. Desde la consola de ElastiCache, elija **ElastiCache Cluster Client** y, a continuación, **Download** (Descargar).

El código fuente de ElastiCache Cluster Client para Java se encuentra disponible en [https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java). Esta biblioteca se basa en el popular cliente Spymemcached. ElastiCache Cluster Client se encuentra sujeto a la licencia de software de Amazon [https://aws.amazon.com/asl](https://aws.amazon.com/asl). Podrá modificar el código fuente de la manera que estime más conveniente. Podrá incluso incorporar el código a bibliotecas de Memcached de código abierto o al código de su propio cliente.

**nota**  
A fin de utilizar ElastiCache Cluster Client para PHP, primero debe instalarlo en su instancia de Amazon EC2. Para obtener más información, consulte [Instalación de ElastiCache Cluster Client para .PHP](Appendix.PHPAutoDiscoverySetup.md).  
Para un cliente compatible con TLS, descargue el binario con PHP versión 7.4 o superior.  
A fin de utilizar ElastiCache Cluster Client para .NET, primero debe instalarlo en su instancia de Amazon EC2. Para obtener más información, consulte [Instalación de ElastiCache Cluster Client para .NET](Appendix.DotNETAutoDiscoverySetup.md).

## Modificación de su programa de aplicación
<a name="AutoDiscovery.Using.ModifyApp"></a>

Modifique su programa de aplicación para que pueda usar la función Auto Discovery. Las siguientes secciones muestran cómo utilizar ElastiCache Cluster Client para Java, PHP y .NET. 

**importante**  
Cuando especifique el punto de conexión de la configuración del clúster, asegúrese de que el punto de conexión tenga la cadena ".cfg" en su dirección, tal como se muestra aquí. No use un CNAME o un punto de conexión que no tengan la cadena ".cfg".   

```
"mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
```
 Si no especifica de forma explícita el punto de conexión de la configuración del clúster, realizará la configuración de un nodo específico.

# Uso de ElastiCache Cluster Client para Java
<a name="AutoDiscovery.Using.ModifyApp.Java"></a>

El siguiente programa indica cómo utilizar ElastiCache Cluster Client para conectarse a un punto de enlace de configuración del clúster y agregar un elemento de datos a la caché. Con la función Auto Discovery, el programa se conectará a todos los nodos del clúster sin necesidad de ninguna intervención adicional.

```
package com.amazon.elasticache;

import java.io.IOException;
import java.net.InetSocketAddress;

// Import the &AWS;-provided library with Auto Discovery support 
import net.spy.memcached.MemcachedClient;  

public class AutoDiscoveryDemo {

    public static void main(String[] args) throws IOException {
            
        String configEndpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
        Integer clusterPort = 11211;

        MemcachedClient client = new MemcachedClient(
                                 new InetSocketAddress(configEndpoint, 
                                                       clusterPort));       
        // The client will connect to the other cache nodes automatically.

        // Store a data item for an hour.  
        // The client will decide which cache host will store this item. 
        client.set("theKey", 3600, "This is the data value");
    }
}
```

# Uso del cliente ElastiCache de clústeres para PHP
<a name="AutoDiscovery.Using.ModifyApp.PHP"></a>

El siguiente programa muestra cómo utilizar el cliente de ElastiCache clúster para conectarse a un punto final de configuración de clúster y añadir un elemento de datos a la memoria caché. Con la función Auto Discovery, el programa se conectará a todos los nodos del clúster sin necesidad de ninguna intervención adicional.

Para usar el ElastiCache Cluster Client para PHP, primero tendrás que instalarlo en tu EC2 instancia de Amazon. Para obtener más información, consulte [Instalación de ElastiCache Cluster Client para .PHP](Appendix.PHPAutoDiscoverySetup.md)

```
<?php
	
 /**
  * Sample PHP code to show how to integrate with the Amazon ElastiCache
  * Auto Discovery feature.
  */

  /* Configuration endpoint to use to initialize memcached client. 
   * This is only an example. 	*/
  $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
  
  /* Port for connecting to the ElastiCache cluster. 
   * This is only an example 	*/
  $server_port = 11211;

 /**
  * The following will initialize a Memcached client to utilize the Auto Discovery feature.
  * 
  * By configuring the client with the Dynamic client mode with single endpoint, the
  * client will periodically use the configuration endpoint to retrieve the current cache
  * cluster configuration. This allows scaling the cluster up or down in number of nodes
  * without requiring any changes to the PHP application. 
  *
  * By default the Memcached instances are destroyed at the end of the request. 
  * To create an instance that persists between requests, 
  *    use persistent_id to specify a unique ID for the instance. 
  * All instances created with the same persistent_id will share the same connection. 
  * See [http://php.net/manual/en/memcached.construct.php](http://php.net/manual/en/memcached.construct.php) for more information.
  */
  $dynamic_client = new Memcached('persistent-id');
  $dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE);
  $dynamic_client->addServer($server_endpoint, $server_port);
  
  /**
  * Store the data for 60 seconds in the cluster. 
  * The client will decide which cache host will store this item.
  */  
  $dynamic_client->set('key', 'value', 60);  


 /**
  * Configuring the client with Static client mode disables the usage of Auto Discovery
  * and the client operates as it did before the introduction of Auto Discovery. 
  * The user can then add a list of server endpoints.
  */
  $static_client = new Memcached('persistent-id');
  $static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLIENT_MODE);
  $static_client->addServer($server_endpoint, $server_port);

 /**
  * Store the data without expiration. 
  * The client will decide which cache host will store this item.
  */  
  $static_client->set('key', 'value');  
  ?>
```

Para ver un ejemplo de cómo usar el cliente de ElastiCache clúster con TLS activado, consulta Cómo [usar el cifrado en tránsito con PHP y Memcached](in-transit-encryption.md#in-transit-encryption-connect-php-mc).

# Uso de ElastiCache Cluster Client para .NET
<a name="AutoDiscovery.Using.ModifyApp.DotNET"></a>

**nota**  
El cliente de clúster .NET de ElastiCache quedó obsoleto en mayo de 2022.

El cliente .NET para ElastiCache es un programa de código abierto que se encuentra disponible en [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net).

 Las aplicaciones .NET suelen recibir sus configuraciones de los archivos de configuración. A continuación se muestra un archivo de configuración de ejemplo.

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section 
            name="clusterclient" 
            type="Amazon.ElastiCacheCluster.ClusterConfigSettings, Amazon.ElastiCacheCluster" />
    </configSections>

    <clusterclient>
        <!-- the hostname and port values are from step 1 above -->
        <endpoint hostname="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" port="11211" />
    </clusterclient>
</configuration>
```

El programa C\$1 indica cómo utilizar ElastiCache Cluster Client para conectarse a un punto de conexión de configuración del clúster y agregar un elemento de datos a la caché. Con la función Auto Discovery, el programa se conectará a todos los nodos del clúster sin necesidad de ninguna intervención adicional.

```
// *****************
// Sample C# code to show how to integrate with the Amazon ElastiCcache Auto Discovery feature.

using System;

using Amazon.ElastiCacheCluster;

using Enyim.Caching;
using Enyim.Caching.Memcached;

public class DotNetAutoDiscoveryDemo  {

    public static void Main(String[] args)  {
    
        // instantiate a new client.
        ElastiCacheClusterConfig config = new ElastiCacheClusterConfig();
        MemcachedClient memClient = new MemcachedClient(config);
        
        // Store the data for 3600 seconds (1hour) in the cluster. 
        // The client will decide which cache host will store this item.
        memClient.Store(StoreMode.Set, 3600, "This is the data value.");
        
    }  // end Main
    
}  // end class DotNetAutoDiscoverDemo
```