Región de AWS Selección - AWS SDK for Java 1.x

Anunciamos la próxima versión end-of-support para AWS SDK for Java (v1). Se recomienda que migre a AWS SDK for Java versión 2. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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.

Región de AWS Selección

Las regiones le permiten acceder a AWS los servicios que residen físicamente en un área geográfica específica. Esto puede ser útil para evitar redundancias y para que sus datos y aplicaciones se ejecuten cerca del lugar desde donde usted y sus usuarios obtendrán acceso a ellos.

Comprobación de la disponibilidad del servicio en una región

Para ver si una determinada región Servicio de AWS está disponible en una región, usa el isServiceSupported método de la región que quieras usar.

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

Consulte la documentación de la clase Regions para saber las regiones que puede especificar y use el prefijo de punto de enlace del servicio que desea consultar. Cada prefijo de punto de enlace del servicio se define en la interfaz del servicio. Por ejemplo, el prefijo del DynamoDB punto final se define en la AmazonDynamobase de datos.

Selección de una región

A partir de la versión 1.4 del AWS SDK for Java, puedes especificar el nombre de una región y el SDK elegirá automáticamente el punto de conexión adecuado para ti. Para elegir usted mismo el punto de enlace, consulte Selección de un punto de enlace específico.

Para configurar de forma explícita una región, le recomendamos que utilice la enumeración Regions. Esta es una enumeración de todas las regiones disponibles públicamente. Para crear un cliente con una región desde la enumeración, utilice el siguiente código.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

Si la región que intenta utilizar no está en la enumeración Regions, puede configurar la región mediante una cadena que represente el nombre de la región.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
nota

Después de compilar un cliente con el creador, este es inmutable y la región no puede modificarse. Si trabaja con varios Regiones de AWS para el mismo servicio, debe crear varios clientes, uno por región.

Selección de un punto de enlace específico

Cada AWS cliente se puede configurar para usar un punto final específico dentro de una región llamando al withEndpointConfiguration método al crear el cliente.

Por ejemplo, para configurar el Amazon S3 cliente para que utilice la región de Europa (Irlanda), utilice el siguiente código.

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .build();

Consulte Regiones y puntos de enlace para ver la lista actual de regiones y sus puntos de enlace correspondientes para todos los AWS servicios.

Determinar automáticamente la región desde el entorno

importante

Esta sección solo se aplica cuando se utiliza un generador de clientes para acceder AWS a los servicios. AWS los clientes creados mediante el constructor de clientes no determinarán automáticamente la región a partir del entorno y, en su lugar, utilizarán la región del SDK predeterminada (usEast1).

Cuando se ejecuta en Lambda Amazon EC2 o Lambda, es posible que desee configurar los clientes para que usen la misma región en la que se ejecuta el código. De esta forma, el código se desacopla del entorno en el que se está ejecutando y es más sencillo implementar la aplicación en varias regiones para reducir la latencia o la redundancia.

Debe utilizar creadores de clientes para que el SDK detecte automáticamente la región en la que se ejecuta el código.

Para utilizar la cadena predeterminada de proveedores de credenciales o regiones para determinar la región a partir del entorno, use el método defaultClient del creador del cliente.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

Es lo mismo que usar standard seguido de build.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

Si no configura explícitamente una región mediante los métodos withRegion, el SDK consulta la cadena predeterminada de proveedores de regiones para intentar determinar la región que se va a usar.

Cadena predeterminada de proveedores de regiones

A continuación se muestra el proceso de búsqueda de regiones:

  1. Cualquier región explícita establecida mediante withRegion o setRegion en el propio creador prevalece sobre todas las demás.

  2. 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.

  3. El SDK comprueba el archivo de configuración AWS compartido (que normalmente se encuentra en~/.aws/config). Si la propiedad region está presente, el SDK la utiliza.

    • La variable de entorno AWS_CONFIG_FILE se puede utilizar para personalizar la ubicación del archivo de configuración compartida.

    • La variable de entorno AWS_PROFILE o la propiedad del sistema aws.profile se pueden utilizar para personalizar el perfil que carga el SDK.

  4. El SDK intenta usar el servicio de metadatos de la Amazon EC2 instancia para determinar la región de la Amazon EC2 instancia que se está ejecutando actualmente.

  5. 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 habitual consiste en utilizar el archivo de configuración compartido (que se describe en la sección Uso de la cadena de proveedores de credenciales predeterminada) para establecer la región para el desarrollo local, y utilizar la cadena de proveedores de regiones predeterminada para determinar la región cuando se ejecuta en la AWS infraestructura. Esto simplifica enormemente la creación del cliente y dota de portabilidad a su aplicación.