Puntos de conexión específicos del servicio - AWS SDKsy 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 final específico del servicio ofrece la opción de utilizar el punto final que elija para API las solicitudes y mantener esa opción. Esta configuración proporciona la flexibilidad necesaria para admitir puntos de conexión locales, puntos de conexión y puntos de conexión VPC locales de terceros AWS entornos de desarrollo. Se pueden usar diferentes puntos de conexión para los entornos de prueba y producción. Puede especificar un punto final URL para cada usuario Servicios de AWS.

Configure esta funcionalidad mediante lo siguiente:

endpoint_url- compartido AWS configconfiguración de archivos
AWS_ENDPOINT_URL: variable de entorno
aws.endpointUrl- propiedad JVM del sistema: 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 espacio compartido AWS configarchivo para configurar 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: AURL, incluidos el esquema y el host del punto final. Opcionalmente, URL puede contener un componente de ruta que contenga uno o más segmentos de ruta.

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

AWS_ENDPOINT_URL_<SERVICE>, ¿dónde está el <SERVICE> 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: AURL, incluidos el esquema y el host del punto final. Opcionalmente, URL puede contener un componente de ruta que contenga uno o más segmentos de ruta.

ignore_configured_endpoint_urls- compartido AWS configconfiguración de archivos
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS: variable de entorno
aws.ignoreConfiguredEndpointUrls- propiedad JVM del sistema: 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, incluir el parámetro de línea de --endpoint-url comandos con un AWS CLI El comando o el paso de un punto final URL a un constructor de clientes siempre surtirán efecto.

Valor predeterminado: false

Valores válidos:

  • true— La herramienta SDK o no lee ninguna opción de configuración personalizada del config archivo compartido ni de las variables de entorno para configurar un punto finalURL.

  • false— La herramienta SDK o utiliza todos los puntos finales disponibles proporcionados por el usuario del config archivo compartido o de las variables de entorno.

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

Para dirigir las solicitudes de todos los servicios a un punto final personalizadoURL, defina la variable de entorno AWS_ENDPOINT_URL global.

export AWS_ENDPOINT_URL=http://localhost:4567

Para enrutar las solicitudes de un determinado Servicio de AWS a un punto final personalizadoURL, utilice la variable de AWS_ENDPOINT_URL_<SERVICE> entorno. Amazon DynamoDB tiene un serviceId de DynamoDB. Para este servicio, la variable de URL entorno del punto final esAWS_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. La Servicio de AWS el identificador se basa en el API modelo sustituyendo todos los espacios serviceId por guiones bajos y mayúsculas en 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 services definición para configurar un punto de enlace específico del servicio URL que se utilizará para Amazon S3 y un punto de enlace 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 serviceId de Elastic Beanstalk. La Servicio de AWS el identificador se basa en el API modelo 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 su perfil tiene credenciales basadas en funciones configuradas mediante un source_profile parámetro para la funcionalidad de IAM asumir funciones, SDK solo utilizará 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 AmazonEC2, 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. Para API llamadas realizadas a una persona determinada 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.

    • Para el registro AWS CLI, es el valor que proporciona el parámetro de la línea de --endpoint-url comandos. En el caso de unaSDK, las asignaciones explícitas pueden adoptar la forma de un parámetro que se establece al crear una instancia Servicio de AWS cliente u 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. Cualquier punto final predeterminado URL para el respectivo Servicio de AWS se usa por última vez.

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. Cualquier configuración de propiedades del JVM sistema es compatible con la AWS SDK for Java y el AWS SDK para Kotlin únicamente.