Región de AWSSelección de - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Región de AWSSelección de

Las regiones permiten obtener acceso a servicios de AWS que se ubican físicamente en un área geográfica determinada. 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 saber si un determinado servicio de Servicio de AWS está disponible en una región, utilice el método isServiceSupported en la región que desea utilizar.

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 de punto de enlace de DynamoDB se define en AmazonDynamoDB.

Selección de una región

A partir de la versión 1.4 de AWS SDK para Java, puede especificar un nombre de región y el SDK elegirá automáticamente un punto de enlace adecuado por usted. 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 varias regiones de 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 cliente de AWS se puede configurar para que utilice un punto de conexión específico dentro de una región llamando al método withEndpointConfiguration al crear el cliente.

Por ejemplo, para configurar el cliente de Amazon S3 para que utilice la región Europa (Irlanda), use 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 conexión para obtener la lista actual de regiones y sus puntos de conexión correspondientes para todos los servicios de AWS.

Determinar automáticamente la región desde el entorno

importante

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

Cuando trabaja en Amazon EC2 o Lambda, es posible que desee configurar los clientes para que utilicen la misma región en la que se está ejecutando 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

    Esta variable de entorno la establece el contenedor de Lambda.

  3. El SDK comprueba el archivo de configuración compartida de AWS (situado normalmente 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 utilizar el servicio de metadatos de instancias de Amazon EC2 para determinar la región de la instancia Amazon EC2 que se está ejecutando en este momento.

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

Cuando se desarrollan aplicaciones de AWS, una práctica habitual es utilizar el archivo de configuración compartida (descrito en Uso de la cadena predeterminada de proveedores de credenciales) para establecer la región para el desarrollo local y usar la cadena predeterminada de proveedores de regiones para determinar la región cuando se trabaja en la infraestructura de AWS. Esto simplifica enormemente la creación del cliente y dota de portabilidad a su aplicación.