AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte
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:
-
Cualquier región explícita establecida mediante
withRegionosetRegionen el propio creador prevalece sobre todas las demás. -
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.
-
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_FILEse puede utilizar para personalizar la ubicación del archivo de configuración compartida. -
La variable de entorno
AWS_PROFILEo la propiedad del sistemaaws.profilese pueden utilizar para personalizar el perfil que carga el SDK.
-
-
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.
-
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.