La AWS SDK for Java versión 1.x entró en modo de mantenimiento el 31 de julio de 2024 y estará disponible el 31 de end-of-support
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, puede especificar el nombre de una región y SDK elegirá automáticamente el punto final adecuado para 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 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 del entorno y, en su lugar, utilizarán la SDK región 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 los creadores de clientes para que detecten SDK 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 estableces una región de forma explícita mediante los withRegion
métodos, SDK consulta la cadena de proveedores de regiones predeterminada para tratar de determinar la región que se va a utilizar.
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
withRegion
osetRegion
en 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 Lambda contenedor.
-
SDKComprueba el archivo de configuración AWS compartido (que normalmente se encuentra en
~/.aws/config
). Si la propiedad de la región está presente, la SDK usa.-
La variable de entorno
AWS_CONFIG_FILE
se puede utilizar para personalizar la ubicación del archivo de configuración compartida. -
La variable de
AWS_PROFILE
entorno o la propiedadaws.profile
del sistema se pueden utilizar para personalizar el perfil que carga elSDK.
-
-
Los SDK intentos de utilizar el servicio de metadatos de la Amazon EC2 instancia para determinar la región de la Amazon EC2 instancia que se está ejecutando actualmente.
-
Si SDK aún no ha encontrado ninguna región en este momento, se produce un error en la creación del cliente, salvo una excepción.
Al desarrollar AWS aplicaciones, un enfoque habitual consiste en utilizar el archivo de configuración compartido (que se describe en Uso de la cadena de proveedores de credenciales predeterminada) 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 se ejecuta en una AWS infraestructura. Esto simplifica enormemente la creación del cliente y dota de portabilidad a su aplicación.