Injeção de prefixo de host - AWS SDKs e ferramentas

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Injeção de prefixo de host

nota

Para obter ajuda na compreensão do layout das páginas de configurações ou na interpretação da tabela Support by AWS SDKs and tools a seguir, consulteEntender as páginas de configurações deste guia.

A injeção de prefixo de host é um recurso em que se AWS SDKs acrescenta automaticamente um prefixo ao nome do host dos endpoints de serviço para determinadas operações de API. Esse prefixo pode ser uma string estática ou um valor dinâmico que inclui dados dos parâmetros da solicitação.

Por exemplo, ao usar o Amazon Simple Storage Service para realizar ações em objetos ou buckets do Amazon S3, o SDK substitui o nome e o Conta da AWS ID do bucket no endpoint final da API.

Embora esse comportamento seja necessário para endpoints de AWS serviço normais, ele pode causar problemas ao usar endpoints personalizados, como endpoints VPC ou ferramentas de teste locais. Nesses casos, pode ser necessário desabilitar a injeção de prefixo de host.

Configure essa funcionalidade usando o seguinte:

disable_host_prefix_injection- configuração de AWS config arquivo compartilhado
AWS_DISABLE_HOST_PREFIX_INJECTION: variável de ambiente
aws.disableHostPrefixInjection- Propriedade do sistema JVM: somente Java/Kotlin

Essa configuração controla se o SDK ou a ferramenta modificará o nome do host do endpoint colocando um prefixo de host no início, conforme definido no objeto ou na variável de cliente do SDK.

Valor padrão: false

Valores válidos:

  • true: desabilitar injeção de prefixo de host. O SDK não modificará o nome do host do endpoint.

  • false: habilitar injeção de prefixo de host. O SDK acrescentará o prefixo de host ao nome do host do endpoint.

Exemplo de configuração desse valor no arquivo config:

[default] disable_host_prefix_injection = true

Exemplo de configuração de variáveis de ambiente para Linux/macOS por meio da linha de comando:

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Exemplo do Windows de configuração de variáveis de ambiente por meio da linha de comando:

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

Exemplos de injeção de prefixo de host

A tabela de exemplos a seguir mostra como SDKs modificar o endpoint final quando a injeção de prefixo do host está ativada e desativada.

  • Prefixo de host: o modelo da string de caracteres de propriedade de prefixo de host definida no objeto ou na variável de cliente do SDK no código.

  • Entradas: entradas adicionais definidas no objeto ou na variável de cliente do SDK no código.

  • Endpoint do cliente: o endpoint derivado do cliente.

  • Valor da configuração: valor resolvido para a configuração anterior.

  • Endpoint resultante: o endpoint resultante que o cliente do SDK usa para fazer a chamada de API.

Prefixo do host Entradas Endpoint do cliente Valor da configuração Endpoint resultante
“dados”. {} "https://service.us-west-2.amazonaws.com" false "https://data.service.us-west-2.amazonaws.com"
{Balde} - {AccountId}.” Caçamba: “amzn-s3-demo-bucket1",:" 123456789012" AccountId "https://service.us-west-2.amazonaws.com" false "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com"
“dados”. {} "https://override.us-west-2.amazonaws.com"(como um endpoint de substituição) true "https://override.us-west-2.amazonaws.com"

Support by AWS SDKs and tools

Os itens a seguir SDKs oferecem suporte aos recursos e configurações descritos neste tópico. Quaisquer exceções parciais estão anotadas. Todas as configurações de propriedade do sistema JVM são suportadas pelo AWS SDK para Java e pelo AWS SDK para Kotlin único.

SDK Compatível Notas ou mais informações
AWS CLI v2 Sim
SDK para C++ Não Configuração não compatível, mas pode ser configurada no código do cliente usando: enableHostPrefixInjection.
SDK para Go V2 (1.x) Não Pode ser desabilitado usando middleware.
SDK para Go 1.x (V1) Não
SDK para Java 2.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION.
SDK para Java 1.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: withDisableHostPrefixInjection.
SDK para 3.x JavaScript Não Configuração não compatível, mas pode ser configurada no código do cliente usando: disableHostPrefix.
SDK para 2.x JavaScript Não Configuração não compatível, mas pode ser configurada no código do cliente usando: hostPrefixEnabled.
SDK para Kotlin Não
SDK para .NET 4.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: DisableHostPrefixInjection.
SDK para .NET 3.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: DisableHostPrefixInjection.
SDK para PHP 3.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: disable_host_prefix_injection.
SDK para Python (Boto3) Sim Pode ser configurado em código no cliente usando: inject_host_prefix.
SDK para Ruby 3.x Não Configuração não compatível, mas pode ser configurada no código do cliente usando: disable_host_prefix_injection.
SDK para Rust Não
SDK para Swift Não
Ferramentas para PowerShell V5 Não A configuração não é compatível, mas pode ser incluída em cmdlets específicos usando o parâmetro -ClientConfig @{DisableHostPrefixInjection = $true}.
Ferramentas para PowerShell V4 Não A configuração não é compatível, mas pode ser incluída em cmdlets específicos usando o parâmetro -ClientConfig @{DisableHostPrefixInjection = $true}.