Padrões de configuração inteligente - AWS SDKse 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á.

Padrões de configuração inteligente

Com o recurso de padrões de configuração inteligente, AWS SDKs pode fornecer valores padrão predefinidos e otimizados para outras configurações.

Configure essa funcionalidade usando o seguinte:

defaults_mode- configuração de AWS config arquivo compartilhado
AWS_DEFAULTS_MODE: variável de ambiente
aws.defaultsMode- propriedade JVM do sistema: somente Java/Kotlin

Com essa configuração, você pode escolher um modo que se alinhe à arquitetura do aplicativo e, em seguida, forneça valores padrão otimizados para o aplicativo. Se uma AWS SDK configuração tiver um valor definido explicitamente, esse valor sempre terá precedência. Se uma AWS SDK configuração não tiver um valor definido explicitamente e não defaults_mode for igual ao legado, esse recurso poderá fornecer valores padrão diferentes para várias configurações otimizadas para seu aplicativo. As configurações podem incluir o seguinte: configurações de HTTP comunicação, comportamento de repetição, configurações de endpoint regional do serviço e, potencialmente, qualquer configuração SDK relacionada. Os clientes que usam esse atributo podem obter novos padrões de configuração personalizados para cenários de uso comuns. Se você não defaults_mode for igual alegacy, recomendamos realizar testes de seu aplicativo ao atualizar oSDK, pois os valores padrão fornecidos podem mudar à medida que as melhores práticas evoluem.

Valor padrão: legacy

Nota: As novas versões principais do SDKs terão como padrãostandard.

Valores válidos:

  • legacy— Fornece configurações padrão que variam SDK e existiam antes do estabelecimento dodefaults_mode.

  • standard: fornece os valores padrão recomendados mais recentes que devem ser executados com segurança na maioria dos cenários.

  • in-region— Baseia-se no modo padrão e inclui otimização personalizada para aplicativos que ligam Serviços da AWS de dentro do mesmo Região da AWS.

  • cross-region— Baseia-se no modo padrão e inclui otimização personalizada para aplicativos que fazem chamadas Serviços da AWS em uma região diferente.

  • mobile: baseia-se no modo padrão e inclui otimização personalizada para aplicativos móveis.

  • auto: baseia-se no modo padrão e inclui atributos experimentais. As SDK tentativas de descobrir o ambiente de tempo de execução para determinar automaticamente as configurações apropriadas. A detecção automática é baseada em heurísticas e não fornece 100% de precisão. Se o ambiente de runtime não puder ser determinado, o modo standard será usado. A detecção automática pode consultar os metadados da instância, o que pode introduzir latência. Se a latência de inicialização for fundamental para seu aplicativo, recomendamos escolher um defaults_mode explícito.

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

[default] defaults_mode = standard

Os parâmetros a seguir podem ser otimizados com base na seleção de defaults_mode:

  • retryMode— Especifica como as SDK tentativas são repetidas. Consulte Comportamento de repetição.

  • stsRegionalEndpoints— Especifica como SDK determina o Serviço da AWS endpoint que ele usa para se comunicar com o AWS Security Token Service ()AWS STS. Consulte AWS STS Endpoints regionalizados.

  • s3UsEast1RegionalEndpoints— Especifica como SDK determina o endpoint AWS de serviço que ele usa para se comunicar com o Amazon S3 da região. us-east-1

  • connectTimeoutInMillis: depois de fazer uma tentativa inicial de conexão em um soquete, a quantidade de tempo antes do tempo limite. Se o cliente não receber a conclusão do handshake de conexão, ele desiste e falhará na operação.

  • tlsNegotiationTimeoutInMillis— O tempo máximo que um TLS handshake pode levar desde o momento em que a CLIENT HELLO mensagem é enviada até o momento em que o cliente e o servidor negociaram totalmente as cifras e trocaram as chaves.

O valor padrão para cada configuração muda dependendo da defaults_mode selecionada para seu aplicativo. Atualmente, esses valores são definidos da seguinte forma (sujeitos a alterações):

Parâmetro Modo standard Modo in-region Modo cross-region Modo mobile
retryMode standard standard standard standard
stsRegionalEndpoints regional regional regional regional
s3UsEast1RegionalEndpoints regional regional regional regional
connectTimeoutInMillis 3100 1100 3100 30000
tlsNegotiationTimeoutInMillis 3100 1100 3100 30000

Por exemplo, se o defaults_mode que você selecionou fosse standard, o valor de standard seria atribuído a retry_mode (das opções retry_mode válidas) e o valor de regional seria atribuído a stsRegionalEndpoints (das opções stsRegionalEndpoints válidas).

Compatibilidade com AWS SDKs

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 JVM sistema são suportadas pelo AWS SDK for Java e pelo AWS SDK para Kotlin único.

SDK Compatível Notas ou mais informações
AWS CLI v2 Não
SDKpara C++ Sim Parâmetros não otimizados:stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis.
SDKpara Go V2 (1.x) Sim Parâmetros não otimizados:retryMode, stsRegionalEndpoints, s3UsEast1RegionalEndpoints.
SDKpara Go 1.x (V1) Não
SDKpara Java 2.x Sim Parâmetros não otimizados: stsRegionalEndpoints.
SDKpara Java 1.x Não
SDKpara JavaScript 3.x Sim Parâmetros não otimizados:stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis. connectTimeoutInMillis é chamado connectionTimeout.
SDKpara JavaScript 2.x Não
SDKpara Kotlin Não
SDKpara. NET3.x Sim Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.
SDKpara PHP 3.x Sim Parâmetros não otimizados: tlsNegotiationTimeoutInMillis.
SDKpara Python (Boto3) Sim Parâmetros não otimizados: tlsNegotiationTimeoutInMillis.
SDKpara Ruby 3.x Sim
SDKpara Rust Não
Ferramentas para PowerShell Sim Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.