Puntos de conexión específicos del servicio
nota
Para obtener ayuda para comprender el diseño de las páginas de configuración o para interpretar la tabla Soporte mediante herramientas y SDK de AWS que aparece a continuación, consulte Comprender las páginas de configuración de esta guía.
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 individuales Servicios de AWS.
Configure esta funcionalidad mediante lo siguiente:
endpoint_url: configuración de archivosconfigde AWS compartidosAWS_ENDPOINT_URL: variable de entornoaws.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 puede usar esta configuración dentro de una sección
servicesde un archivo compartidoconfigde AWS para establecer un punto de conexión 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ónservices, consulte Identificadores de punto de conexión específicos del servicio.Valor predeterminado:
noneValores 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 entornoaws.endpointUrl<ServiceName>: propiedad del sistema JVM: solo en Java/Kotlin-
AWS_ENDPOINT_URL_<SERVICE>, donde<SERVICE>es el identificador Servicio de AWS, establece un punto de conexión 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:
noneValores 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 archivosconfigde AWS compartidosAWS_IGNORE_CONFIGURED_ENDPOINT_URLS: variable de entornoaws.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 parámetro de línea de comandos
--endpoint-urlcon un comando AWS CLI o pasar la URL de un punto de conexión a un constructor de clientes.Valor predeterminado:
falseValores válidos:
-
true: el SDK o la herramienta no leen ninguna opción de configuración personalizada del archivo compartidoconfigni 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 compartidoconfigo 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 de conexión específico de Servicio de AWS a una URL de punto de conexión personalizada, utilice la variable de entorno de AWS_ENDPOINT_URL_<SERVICE>. Amazon DynamoDB tiene un serviceId DynamoDBAWS_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 Elastic BeanstalkserviceId al sustituir todos los espacios por guiones bajos y poniendo en minú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_urldirectamente en unprofile, ese punto de conexión se convierte en el punto de conexión global. -
El
endpoint_urlanidado bajo una clave identificadora de servicio en una secciónservices, 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 deservicesen el archivo compartidoconfig, 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:
[profiledev-s3-specific-and-global] endpoint_url =http://localhost:1234services =s3-specific[servicess3-specific] s3 = endpoint_url =https://play.min.io:9000
Un único perfil puede configurar puntos de conexión para varios servicios. Este ejemplo muestra cómo establecer las URL de punto de conexión específicas del servicio para Amazon S3 y AWS Elastic Beanstalk en el mismo perfil. AWS Elastic Beanstalk tiene un serviceId Elastic BeanstalkserviceId del modelo de la API, sustituyendo todos los espacios por guiones bajos y poniendo en 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.
[servicestesting-s3-and-eb] s3 = endpoint_url =http://localhost:4567elastic_beanstalk = endpoint_url =http://localhost:8000[profiledev] 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:
[servicestesting-s3] s3 = endpoint_url =https://localhost:4567[profiletesting-json] output = json services =testing-s3[profiletesting-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:
[profileA] credential_source =Ec2InstanceMetadataendpoint_url =https://profile-a-endpoint.aws/[profileB] source_profile =Arole_arn =arn:aws:iam::123456789012:role/roleBservices =profileB[servicesprofileB] ec2 = endpoint_url =https://profile-b-ec2-endpoint.aws
Si usa el perfil B y realiza una llamada en el código a Amazon EC2, el punto de conexión se resuelve como https://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 las llamadas a la API realizadas a un Servicio de AWS determinado, se utiliza el siguiente orden para seleccionar un valor:
-
Cualquier configuración explícita establecida en el código o en el propio cliente de servicio tiene prioridad sobre cualquier otra.
-
En el caso de la AWS CLI, este es el valor que proporciona el parámetro de la línea de comandos
--endpoint-url. 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 cliente de Servicio de AWS o un objeto de configuración.
-
-
El valor proporcionado por una variable de entorno específica del servicio, como
AWS_ENDPOINT_URL_DYNAMODB. -
El valor proporcionado por la variable de entorno de punto de conexión
AWS_ENDPOINT_URLglobal. -
El valor que proporciona la configuración anidada
endpoint_urlbajo una clave de identificación de servicio dentro de una secciónservicesdel archivo compartidoconfig. -
El valor proporcionado por la configuración de
endpoint_urlen unprofilede un archivo compartidoconfig. -
En último lugar, se utiliza cualquier URL de punto de conexión predeterminada para el Servicio de AWS respectivo.
Soporte mediante SKD y herramientas de AWS
Los siguientes SDK admiten las características y los ajustes descritos en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK para Java y AWS SDK para Kotlin únicamente.
| SDK | Compatible | Notas o más información |
|---|---|---|
| AWS CLI v2 | Sí | |
| SDK para C++ | No | |
| SDK para Go V2 (1.x) |
Sí | |
| SDK para Go 1.x (V1) | No | |
| SDK para Java 2.x | Sí | |
| SDK para Java 1.x | No | |
| SDK para JavaScript 3.x | Sí | |
| SDK para JavaScript 2.x | No | |
| SDK de para Kotlin | Sí | |
| SDK para .NET 4.x | Sí | |
| SDK para .NET 3.x | Sí | |
| SDK para PHP 3.x | Sí | |
| SDK para Python (Boto3) |
Sí | |
| SDK para Ruby 3.x | Sí | |
| SDK de para Rust | Sí | |
| SDK de para Swift | Sí | |
| Herramientas para PowerShell V5 | Sí | |
| Herramientas para PowerShell V4 | Sí |