

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.

# Configuración del Región de AWS para AWS SDK for Java 2.x
<a name="region-selection"></a>

Los clientes del SDK se conectan a un Servicio de AWS entorno específico Región de AWS que usted especifique al crear el cliente. Esta configuración permite que la aplicación interactúe con recursos de AWS de esa área geográfica. Al crear un cliente de servicio sin establecer una región de forma explícita, el SDK utiliza la región predeterminada de la configuración externa. 

## Configure explícitamente un Región de AWS
<a name="region-selection-choose-region"></a>

Para configurar de forma explícita una región, le recomendamos que utilice las constantes definidas en la clase [Region](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/Region.html). Esta es una enumeración de todas las regiones disponibles públicamente. 

Para crear un cliente con una región enumerada de la clase, utilice el método `region` del creador de clientes.

```
Ec2Client ec2 = Ec2Client.builder()
          .region(Region.US_WEST_2)
          .build();
```

Si la región que intenta utilizar no es una de las enumeraciones en la clase `Region`, puede crear una nueva región con el método `of` estático. Este método le permite obtener acceso a nuevas regiones sin actualizar el SDK. 

```
Region newRegion = Region.of("us-east-42");
Ec2Client ec2 = Ec2Client.builder()
          .region(newRegion)
          .build();
```

**nota**  
Después de crear un cliente con el generador, es *inmutable* y Región de AWS *no se puede cambiar*. Si necesita trabajar con varios Regiones de AWS para el mismo servicio, debe crear varios clientes, uno por región.

## Deje que el SDK determine automáticamente el valor predeterminado Región de AWS del entorno
<a name="automatically-determine-the-aws-region-from-the-environment"></a>

Cuando el código se ejecute en Amazon EC2 o AWS Lambda, tal vez, desee configurar los clientes para que usen los mismos en los Región de AWS que se ejecuta el código. Esto desvincula el código del entorno en el que se ejecuta y facilita la implementación de la aplicación en varios niveles Regiones de AWS para reducir la latencia o la redundancia.

Para usar la cadena de Región de AWS proveedores predeterminada para determinar la región a partir del entorno, utilice el método del creador de `create` clientes.

```
Ec2Client ec2 = Ec2Client.create();
```

También puede configurar el cliente de otras formas, pero no establecer la región. El SDK las recoge Región de AWS mediante la cadena de proveedores de regiones predeterminada:

```
Ec2Client ec2Client = Ec2Client.builder()
        .credentialsProvider(ProfileCredentialsProvider.builder()
                .profileName("my-profile")
                .build())
        .build();
```

Si no estableces una de forma explícita Región de AWS mediante el `region` método, el SDK consulta la cadena de proveedores de regiones predeterminada para determinar la región que se va a utilizar.

### Comprender la cadena de Región de AWS proveedores predeterminada
<a name="default-region-provider-chain"></a>

 **El SDK sigue los pasos indicados a continuación para buscar una Región de AWS:** 

1. Cualquier región explícita establecida mediante el método `region` en el propio compilador prevalece sobre todas las demás.

1. El SDK busca la propiedad `aws.region` del sistema JVM y usa su valor si la encuentra.

1. Se comprueba la variable de entorno `AWS_REGION`. Si se ha establecido, se usa esa región para configurar el cliente.
**nota**  
El Lambda contenedor establece esta variable de entorno.

1. El SDK comprueba el perfil activo en los [archivos de configuración y credenciales compartidos de AWS](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html). Si la propiedad `region` está presente, el SDK la utiliza.

   El perfil `default` es el perfil activo a menos que lo anule una variable de entorno `AWS_PROFILE` o una propiedad del sistema JVM `aws.profile`. Si el SDK encuentra la propiedad `region` en ambos archivos para el mismo perfil (incluido el perfil `default`), usará el valor del archivo de credenciales compartido.

1. El SDK intenta usar el servicio de metadatos de la Amazon EC2 instancia (IMDS) para determinar la región de la Amazon EC2 instancia que se está ejecutando actualmente.
   + Para mayor seguridad, debe deshabilitar el SDK para que no intente usar la versión 1 del IMDS. Para deshabilitar la versión 1, utilice la misma configuración que se describe en la sección [Adquisición segura de credenciales de roles de IAM](ec2-iam-roles.md#securely-read-IAM-role_credentials).

1. Si el SDK todavía no ha encontrado una región en ese momento, la creación del cliente produce una excepción.

Al desarrollar AWS aplicaciones, un enfoque común consiste en utilizar el *archivo de configuración compartido* para establecer la región para el desarrollo local y confiar en la cadena de proveedores de regiones predeterminada para determinar la región cuando la aplicación se ejecuta en la AWS infraestructura. Esto simplifica enormemente la creación del cliente y dota de portabilidad a su aplicación.

## Comprobación si un servicio está disponible en una región
<a name="region-selection-query-service"></a>

Para comprobar si una determinada opción Servicio de AWS está disponible en una región, utilice el `serviceMetadata` método estático en un cliente de servicio:

```
DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);
```

El fragmento anterior imprime una larga lista de Región de AWS códigos que tienen el servicio DynamoDB:

```
af-south-1
ap-east-1
ap-northeast-1
ap-northeast-2
ap-northeast-3
ap-south-1
ap-south-2
ap-southeast-1
...
```

Puede usar un código para buscar la [Enumeración de clases de región](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/Region.html) correspondiente a la región que necesita que use su cliente de servicio.

Por ejemplo, si desea trabajar con DynamoDB en la región con el código `ap-northeast-2`, cree su cliente de DynamoDB con al menos la siguiente configuración:

```
DynamoDbClient ddb = DynamoDbClient.builder()
    .region(Region.AP_NORTHEAST_2)
    .build();
```

## Seleccionar un punto de conexión específico
<a name="choosing-a-specific-endpoint"></a>

En determinadas situaciones (por ejemplo, para probar una vista previa de las funciones de un servicio antes de que pasen a estar disponibles para el público general), es posible que tenga que especificar un punto de conexión específico en una región. En estas situaciones, los clientes del servicio se pueden configurar llamando al método. `endpointOverride`

Por ejemplo, para configurar un Amazon EC2 cliente para que utilice la región de Europa (Irlanda) con un punto final específico, utilice el siguiente código.

```
Ec2Client ec2 = Ec2Client.builder()
               .region(Region.EU_WEST_1)
               .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com"))
               .build();
```

Consulte [Regiones y puntos de enlace](https://docs.aws.amazon.com/general/latest/gr/rande.html) para ver la lista actual de regiones y sus puntos de enlace correspondientes para todos los AWS servicios.