Puntos de conexión específicos del servicio - AWS SDKs y herramientas

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.

Puntos de conexión específicos del servicio

La configuración del punto de conexión específico del servicio ofrece la opción de utilizar un punto de conexión de su elección para las solicitudes de la API y de hacer que esa opción persista. Estas configuraciones proporcionan flexibilidad para admitir puntos de conexión locales, puntos de conexión de VPC y entornos de desarrollo de AWS locales de terceros. Se pueden usar diferentes puntos de conexión para los entornos de prueba y producción. Puede especificar una URL de punto de conexión para Servicios de AWS individuales.

Configure esta funcionalidad mediante lo siguiente:

endpoint_url- configuración de AWS config archivos compartidos
AWS_ENDPOINT_URL: variable de entorno
aws.endpointUrl- Propiedad del sistema JVM: solo en Java/Kotlin

Cuando se especifica directamente en un perfil o como variable de entorno, esta configuración especifica el punto de conexión que se utiliza para todas las solicitudes de servicio. Este punto final es anulado por cualquier punto de conexión específico del servicio configurado.

También puedes usar esta configuración dentro de una services sección de un AWS config archivo compartido para establecer un punto final personalizado para un servicio específico. Para obtener una lista de todas las claves de identificación de servicio que se van a utilizar para las subsecciones en la sección services, consulte Identificadores de punto de conexión específicos del servicio.

Valor predeterminado: none

Valores válidos: una URL que incluye el esquema y el host del punto de conexión. La URL puede contener opcionalmente un componente de ruta que contenga uno o más segmentos de ruta.

AWS_ENDPOINT_URL_<SERVICE>: variable de entorno
aws.endpointUrl<ServiceName>- Propiedad del sistema JVM: solo en Java/Kotlin

AWS_ENDPOINT_URL_<SERVICE>, donde <SERVICE> está el Servicio de AWS identificador, establece un punto final personalizado para un servicio específico. Para obtener una lista de todas las variables de entorno específicas del servicio, consulte Identificadores de punto de conexión específicos del servicio.

Este punto de conexión específico del servicio anula cualquier punto de conexión global establecido en AWS_ENDPOINT_URL.

Valor predeterminado: none

Valores válidos: una URL que incluye el esquema y el host del punto de conexión. La URL puede contener opcionalmente un componente de ruta que contenga uno o más segmentos de ruta.

ignore_configured_endpoint_urls- configuración de AWS config archivos compartidos
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS: variable de entorno
aws.ignoreConfiguredEndpointUrls- Propiedad del sistema JVM: solo en Java/Kotlin

Esta configuración se utiliza para ignorar todas las configuraciones de puntos de conexión personalizadas.

Tenga en cuenta que cualquier punto de conexión explícito establecido en el código o en el propio cliente de servicio se utiliza independientemente de esta configuración. Por ejemplo, siempre tendrá efecto incluir el --endpoint-url parámetro de línea de comandos en un AWS CLI comando o pasar la URL de un punto final a un constructor de clientes.

Valor predeterminado: false

Valores válidos:

  • true: el SDK o la herramienta no leen ninguna opción de configuración personalizada del archivo compartido config ni de las variables de entorno para configurar la URL de un punto de conexión.

  • false: el SDK o la herramienta utilizan todos los puntos de conexión disponibles proporcionados por el usuario desde el archivo compartido config o desde las variables de entorno.

Configuración de puntos de conexión mediante variables de entorno

Para dirigir las solicitudes de todos los servicios a una URL de punto de conexión personalizada, establezca la variable de entorno global de AWS_ENDPOINT_URL.

export AWS_ENDPOINT_URL=http://localhost:4567

Para enrutar las solicitudes de una URL de punto final específica Servicio de AWS a una URL de punto final personalizada, usa la variable de AWS_ENDPOINT_URL_<SERVICE> entorno. Amazon DynamoDB tiene un serviceId de DynamoDB. Para este servicio, la variable de entorno de la URL del punto de conexión es AWS_ENDPOINT_URL_DYNAMODB. Este punto de conexión tiene prioridad sobre el punto de conexión global establecido en AWS_ENDPOINT_URL para este servicio.

export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678

Como otro ejemplo, AWS Elastic Beanstalk tiene un serviceId de Elastic Beanstalk. El Servicio de AWS identificador se basa en el modelo de la API, sustituyendo todos los espacios serviceId por guiones bajos y mayúsculas todas las letras. Para este servicio, la variable de entorno de la URL del punto de conexión es AWS_ENDPOINT_URL_ELASTIC_BEANSTALK. Para obtener una lista de todas las variables de entorno específicas del servicio, consulte Identificadores de punto de conexión específicos del servicio.

export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:5567

Configure los puntos de conexión mediante el archivo compartido config

En el archivo compartido config, endpoint_url se usa en diferentes lugares para diferentes funciones.

  • Si se especifica endpoint_url directamente en un profile, ese punto de conexión se convierte en el punto de conexión global.

  • El endpoint_url anidado bajo una clave identificadora de servicio en una sección services, hace que ese punto de conexión se aplique únicamente a las solicitudes realizadas a ese servicio. Para obtener más información sobre cómo definir una sección de services en el archivo compartido config, consulte Formato del archivo de configuración.

En el siguiente ejemplo, se utiliza una definición de services para configurar una URL de punto de conexión específica que se utilizará para Amazon S3 y un punto de conexión global personalizado que se utilizará para todos los demás servicios:

[profile dev-s3-specific-and-global] endpoint_url = http://localhost:1234 services = s3-specific [services s3-specific] s3 = endpoint_url = https://play.min.io:9000

Un único perfil puede configurar puntos de conexión para varios servicios. En este ejemplo, se muestra cómo configurar el punto final específico del servicio URLs para Amazon S3 y AWS Elastic Beanstalk en el mismo perfil. AWS Elastic Beanstalk tiene un deserviceId. Elastic Beanstalk El Servicio de AWS identificador se basa en el modelo de la API, sustituyendo todos los espacios serviceId por guiones bajos y minúsculas todas las letras. Por lo tanto, la clave identificadora del servicio pasa a ser elastic_beanstalk y la configuración de este servicio comienza en la línea elastic_beanstalk = . Para obtener una lista de todas las claves de identificación de servicio que se van a utilizar en la sección de services, consulte Identificadores de punto de conexión específicos del servicio.

[services testing-s3-and-eb] s3 = endpoint_url = http://localhost:4567 elastic_beanstalk = endpoint_url = http://localhost:8000 [profile dev] services = testing-s3-and-eb

La sección de configuración de servicios se puede utilizar en varios perfiles. Por ejemplo, dos perfiles pueden usar la misma definición de services y, al mismo tiempo, modificar otras propiedades del perfil:

[services testing-s3] s3 = endpoint_url = https://localhost:4567 [profile testing-json] output = json services = testing-s3 [profile testing-text] output = text services = testing-s3

Configure los puntos de conexión de los perfiles mediante credenciales basadas en roles

Si el perfil tiene credenciales basadas en roles configuradas mediante un parámetro source_profile para la funcionalidad de asumir roles de IAM, el SDK solo usa configuraciones de servicio para el perfil especificado. No utiliza perfiles que estén vinculados a él por roles. Por ejemplo, mediante el siguiente archivo config compartido:

[profile A] credential_source = Ec2InstanceMetadata endpoint_url = https://profile-a-endpoint.aws/ [profile B] source_profile = A role_arn = arn:aws:iam::123456789012:role/roleB services = profileB [services profileB] ec2 = endpoint_url = https://profile-b-ec2-endpoint.aws

Si utilizas el perfil B y haces una llamada en tu código a Amazon EC2, el punto final se resuelve comohttps://profile-b-ec2-endpoint.aws. Si el código realiza una solicitud a cualquier otro servicio, la resolución del punto de conexión no seguirá ninguna lógica personalizada. El punto de conexión no se convierte en el punto de conexión global definido en el perfil A. Para que un punto de conexión global surta efecto en el perfil B, tendrá que configurar endpoint_url directamente dentro del perfil B. Para obtener más información sobre la configuración de source_profile, consulte Asumir el rol de proveedor de credenciales.

Precedencia de configuración

La configuración de esta característica se puede usar al mismo tiempo, pero solo tendrá prioridad un valor por servicio. En el caso de las llamadas a la API realizadas a un valor determinado Servicio de AWS, se utiliza el siguiente orden para seleccionar un valor:

  1. Cualquier ajuste explícito establecido en el código o en el propio cliente de un servicio tiene prioridad sobre cualquier otra cosa.

    • En el caso de AWS CLI, este es el valor que proporciona el parámetro de línea de --endpoint-url comandos. En el caso de un SDK, las asignaciones explícitas pueden adoptar la forma de un parámetro que se establece al crear una instancia de un Servicio de AWS cliente o un objeto de configuración.

  2. El valor proporcionado por una variable de entorno específica del servicio, como AWS_ENDPOINT_URL_DYNAMODB.

  3. El valor proporcionado por la variable de entorno de punto de conexión AWS_ENDPOINT_URL global.

  4. El valor que proporciona la configuración anidada endpoint_url bajo una clave de identificación de servicio dentro de una sección services del archivo compartido config.

  5. El valor proporcionado por la configuración de endpoint_url en un profile de un archivo compartido config.

  6. En último lugar, se usa cualquier URL de punto final predeterminada para Servicio de AWS el respectivo.

Compatibilidad con AWS SDKs

Las siguientes opciones SDKs son compatibles con las funciones y configuraciones descritas en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK for Java y AWS SDK para Kotlin únicamente.