Padrões de configuração inteligente
nota
Para obter ajuda em compreender o layout das páginas de configurações ou interpretar a tabela Compatibilidade com SDKs e ferramentas da AWS a seguir, consulte Entender as páginas de configurações deste guia.
Com o atributo de padrões de configuração inteligente, os AWS SDKs podem fornecer valores padrão predefinidos e otimizados para outras configurações.
Configure essa funcionalidade usando o seguinte:
defaults_mode: configuração de arquivoconfigda AWS compartilhadoAWS_DEFAULTS_MODE: variável de ambienteaws.defaultsMode: propriedade do sistema de JVM: apenas 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 configuração do AWS SDK tiver um valor definido explicitamente, esse valor sempre terá precedência. Se uma configuração do AWS SDK não tiver um valor definido explicitamente e
defaults_modenão for igual ao legado, esse atributo 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 comunicação HTTP, comportamento de repetição, configurações de endpoint regional do serviço e, potencialmente, qualquer configuração relacionada ao SDK. Os clientes que usam esse atributo podem obter novos padrões de configuração personalizados para cenários de uso comuns. Se seudefaults_modenão for igual alegacy, recomendamos realizar testes de seu aplicativo ao atualizar o SDK, pois os valores padrão fornecidos podem mudar à medida que as melhores práticas evoluem.Valor padrão:
legacyObservação: as novas versões principais dos SDKs usarão como padrão de
standard.Valores válidos:
-
legacy: fornece configurações padrão que variam de acordo com o 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 chamam os Serviços da AWS de dentro da mesma Região da AWS. -
cross-region: baseia-se no modo padrão e inclui otimização personalizada para aplicativos que chamam os 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. O SDK tenta descobrir o ambiente de runtime 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 modostandardserá 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 umdefaults_modeexplícito.
Exemplo de configuração desse valor no arquivo
config:[default]defaults_mode= standardOs parâmetros a seguir podem ser otimizados com base na seleção de
defaults_mode:-
retryMode: especifica como o SDK tenta novas tentativas. Consulte Comportamento de repetição. -
stsRegionalEndpoints: especifica como o SDK determina o endpoint do AWS service (Serviço da AWS) usado para se comunicar com o AWS Security Token Service (AWS STS). Consulte Endpoints regionais do AWS STS. -
s3UsEast1RegionalEndpoints: especifica como o SDK determina o endpoint do serviço da AWS usado para se comunicar com o Amazon S3 para a Regiãous-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 handshake TLS pode levar desde o momento em que a mensagem CLIENT HELLO é 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):
| Parameter | 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 SDKs e ferramentas da AWS
Os SDKs a seguir são compatíveis com os recursos e configurações descritos neste tópico. Quaisquer exceções parciais estão anotadas. As configurações de propriedade do sistema de JVM são compatíveis apenas como o AWS SDK para Java e o AWS SDK para Kotlin.
| SDK | Compatível | Notas ou mais informações |
|---|---|---|
| AWS CLI v2 da2 | Não | |
| SDK para C++ | Sim | Parâmetros não otimizados:stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis. |
| SDK para Go V2 (1.x) |
Sim | Parâmetros não otimizados:retryMode, stsRegionalEndpoints, s3UsEast1RegionalEndpoints. |
| SDK para Go 1.x (V1) | Não | |
| SDK para Java 2.x | Sim | Parâmetros não otimizados: stsRegionalEndpoints. |
| SDK para Java 1.x | Não | |
| SDK para JavaScript 3.x | Sim | Parâmetros não otimizados:stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis. connectTimeoutInMillis é chamado connectionTimeout. |
| SDK para JavaScript 2.x | Não | |
| SDK para Kotlin | Não | |
| SDK para .NET 4.x | Sim | Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis. |
| SDK para .NET 3.x | Sim | Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis. |
| SDK para PHP 3.x | Sim | Parâmetros não otimizados: tlsNegotiationTimeoutInMillis. |
| SDK para Python (Boto3) |
Sim | Parâmetros não otimizados: tlsNegotiationTimeoutInMillis. |
| SDK para Ruby 3.x | Sim | |
| SDK para Rust | Não | |
| SDK para Swift | Não | |
| Ferramentas para PowerShell V5 | Sim | Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis. |
| Ferramentas para PowerShell V4 | Sim | Parâmetros não otimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis. |