Inyección de prefijos de host - 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.

Inyección de prefijos de host

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 inyección de prefijos de host es una característica en la que los SDK de AWS añaden automáticamente un prefijo al nombre de host de los puntos de conexión del servicio para determinadas operaciones de la API. Este prefijo puede ser una cadena estática o un valor dinámico que incluya datos de los parámetros de la solicitud.

Por ejemplo, cuando se utiliza Amazon Simple Storage Service para realizar acciones en objetos o buckets de Amazon S3, el SDK reemplaza el nombre del bucket y el ID de la Cuenta de AWS en el punto de conexión de la API.

Si bien este comportamiento es obligatorio para los puntos de conexión del servicio normal de AWS, puede causar problemas al usar puntos de conexión personalizados, como puntos de conexión de VPC o herramientas de prueba locales. En estos casos, es posible que tenga que deshabilitar la inyección de prefijos de host.

Configure esta funcionalidad mediante lo siguiente:

disable_host_prefix_injection: configuración de archivos config de AWS compartidos
AWS_DISABLE_HOST_PREFIX_INJECTION: variable de entorno
aws.disableHostPrefixInjection: propiedad del sistema JVM: solo en Java/Kotlin

Esta configuración controla si el SDK o la herramienta modificarán el nombre de host del punto de conexión mediante la anteposición de un prefijo de host tal como se define en el objeto o la variable de cliente del SDK.

Valor predeterminado: false

Valores válidos:

  • true: inhabilitar la inyección de prefijos de host. El SDK no modificará el nombre de host del punto de conexión.

  • false: habilitar la inyección de prefijos de host. El SDK antepondrá el prefijo de host al nombre de host del punto de conexión.

Ejemplo de configuración de este valor en el archivo config:

[default] disable_host_prefix_injection = true

Ejemplo de configuración de variables de entorno en Linux/macOS mediante la línea de comandos:

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Ejemplo de configuración de variables de entorno en Windows mediante la línea de comandos:

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

Ejemplos de inyección de prefijos de host

En la siguiente tabla de ejemplos, se muestra cómo los SDK modifican el punto de conexión cuando la inyección de prefijos de host está habilitada o deshabilitada.

  • Prefijo de host: la plantilla de la cadena de propiedades del prefijo de host establecida en el objeto o variable de cliente del SDK en el código.

  • Entradas: entradas adicionales configuradas en el objeto o variable de cliente del SDK en el código.

  • Punto de conexión del cliente: punto de conexión derivado del cliente.

  • Valor de configuración: valor resuelto para la configuración anterior.

  • Punto de conexión resultante: el punto de conexión resultante que el cliente del SDK utiliza para realizar la llamada a la API.

Prefijo de host Entradas Punto de conexión del cliente Valor de configuración Punto de conexión resultante
"data." {} "https://service.us-west-2.amazonaws.com" false "https://data.service.us-west-2.amazonaws.com"
"{Bucket}-{AccountId}." Bucket: "amzn-s3-demo-bucket1", AccountId:"123456789012" "https://service.us-west-2.amazonaws.com" false "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com"
"data." {} "https://override.us-west-2.amazonaws.com" (as an override endpoint) true "https://override.us-west-2.amazonaws.com"

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
SDK para C++ No No se admite la configuración, pero se puede configurar en código en el cliente mediante: enableHostPrefixInjection.
SDK para Go V2 (1.x) No Se puede deshabilitar mediante middleware.
SDK para Go 1.x (V1) No
SDK para Java 2.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION.
SDK para Java 1.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: withDisableHostPrefixInjection.
SDK para JavaScript 3.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: disableHostPrefix.
SDK para JavaScript 2.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: hostPrefixEnabled.
SDK de para Kotlin No
SDK para .NET 4.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: DisableHostPrefixInjection.
SDK para .NET 3.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: DisableHostPrefixInjection.
SDK para PHP 3.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: disable_host_prefix_injection.
SDK para Python (Boto3) Se puede configurar en código en el cliente mediante: inject_host_prefix.
SDK para Ruby 3.x No No se admite la configuración, pero se puede configurar en código en el cliente mediante: disable_host_prefix_injection.
SDK de para Rust No
SDK de para Swift No
Herramientas para PowerShell V5 No No se admite la configuración, pero se puede incluir en cmdlets específicos mediante el parámetro -ClientConfig @{DisableHostPrefixInjection = $true}.
Herramientas para PowerShell V4 No No se admite la configuración, pero se puede incluir en cmdlets específicos mediante el parámetro -ClientConfig @{DisableHostPrefixInjection = $true}.