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á.
Configurando o AWS SDK para clientes de serviços C++ em código
Quando a configuração é tratada diretamente no código, o escopo da configuração é limitado ao aplicativo que usa esse código. Dentro desse aplicativo, há opções para a configuração global de todos os clientes de serviço, a configuração para todos os clientes de um determinado AWS service (Serviço da AWS) tipo ou a configuração para uma instância específica do cliente de serviço.
AWS SDK para C++ Isso inclui classes de AWS service (Serviço da AWS) cliente que fornecem funcionalidade para interagir com as Serviços da AWS que você usa em seu aplicativo. No SDK para C++, você pode alterar a configuração padrão do cliente, o que é útil quando você quer fazer coisas como:
-
Conectar-se à Internet por meio de proxy
-
Alterar configurações de transporte HTTP, como tempo limite da conexão e novas tentativas de requisição
-
Especificar dicas de tamanho do buffer de soquete TCP
ClientConfigurationé uma estrutura no SDK para C++ que você pode instanciar e utilizar em seu código. O trecho a seguir ilustra o uso dessa classe para acessar o Amazon S3 por meio de um proxy.
Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);
Declarações de variáveis de configuração
A ClientConfiguration estrutura declara as seguintes variáveis de membro:
Aws::String accountId; Aws::String accountIdEndpointMode = "preferred"; bool allowSystemProxy = false; Aws::String appId; Aws::String caPath; Aws::String caFile; struct { RequestChecksumCalculation requestChecksumCalculation = RequestChecksumCalculation::WHEN_SUPPORTED; ResponseChecksumValidation responseChecksumValidation = ResponseChecksumValidation::WHEN_SUPPORTED; } checksumConfig; ProviderFactories configFactories = ProviderFactories::defaultFactories; long connectTimeoutMs = 1000; struct CredentialProviderConfiguration { Aws::String profile; Aws::String region; struct { long metadataServiceNumAttempts = 1; long metadataServiceTimeout = 1; std::shared_ptr<RetryStrategy> imdsRetryStrategy; bool disableImdsV1; bool disableImds; } imdsConfig; struct STSCredentialsCredentialProviderConfiguration { Aws::String roleArn; Aws::String sessionName; Aws::String tokenFilePath; std::chrono::milliseconds retrieveCredentialsFutureTimeout = std::chrono::seconds(10); } stsCredentialsProviderConfig; } credentialProviderConfig; bool disableExpectHeader = false; bool disableIMDS = false; bool disableImdsV1 = false; bool enableClockSkewAdjustment = true; Aws::Crt::Optional<bool> enableEndpointDiscovery; bool enableHostPrefixInjection = true; bool enableHttpClientTrace = false; bool enableTcpKeepAlive = true; Aws::String endpointOverride; std::shared_ptr<Aws::Utils::Threading::Executor> executor = nullptr; FollowRedirectsPolicy followRedirects; Aws::Http::TransferLibType httpLibOverride; Aws::Http::TransferLibPerformanceMode httpLibPerfMode = Http::TransferLibPerformanceMode::LOW_LATENCY; long httpRequestTimeoutMs = 0; unsigned long lowSpeedLimit = 1; unsigned maxConnections = 25; Aws::Utils::Array<Aws::String> nonProxyHosts; Aws::String profileName; Aws::String proxyCaFile; Aws::String proxyCaPath; Aws::Http::Scheme proxyScheme; Aws::String proxyHost; unsigned proxyPort = 0; Aws::String proxyUserName; Aws::String proxyPassword; Aws::String proxySSLCertPath; Aws::String proxySSLCertType; Aws::String proxySSLKeyPath; Aws::String proxySSLKeyType; Aws::String proxySSLKeyPassword; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> readRateLimiter = nullptr; Aws::String region; Aws::Client::RequestCompressionConfig requestCompressionConfig; long requestTimeoutMs = 0; std::shared_ptr<RetryStrategy> retryStrategy = nullptr; Aws::Http::Scheme scheme; unsigned long tcpKeepAliveIntervalMs = 30000; std::shared_ptr<smithy::components::tracing::TelemetryProvider> telemetryProvider; Aws::String userAgent; bool useDualStack = false; bool useFIPS = false; bool verifySSL = true; Aws::Http::Version version = Http::Version::HTTP_VERSION_2TLS; struct WinHTTPOptions { bool useAnonymousAuth = false; } winHTTPOptions; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> writeRateLimiter = nullptr; static Aws::String LoadConfigFromEnvOrProfile(const Aws::String& envKey, const Aws::String& profile, const Aws::String& profileProperty, const Aws::Vector<Aws::String>& allowedValues, const Aws::String& defaultValue);
Descrições das variáveis de configuração
A lista a seguir descreve as variáveis do ClientConfiguration membro que você pode usar para personalizar o comportamento do cliente.
- accountId
-
Especifica a Conta da AWS ID do roteamento de endpoints baseado em conta. Use o formato 111122223333. O roteamento de endpoints baseado em conta melhora o desempenho da solicitação para alguns serviços.
- accountIdEndpointModo
-
Controla o comportamento de roteamento de endpoints com base na conta. Os valores válidos são “obrigatório”, “desativado” ou “preferencial”. O valor padrão é “preferencial”. Defina como “desativado” para desativar o roteamento de endpoints baseado em conta quando necessário.
- allowSystemProxy
-
Controla se o cliente HTTP descobre as configurações de proxy do sistema. A configuração padrão é falsa. Defina como true para ativar a descoberta automática de proxy.
- appId
-
Especifica um identificador opcional específico do aplicativo. Quando definido, esse valor é anexado ao
User-Agentcabeçalho no formatoApp/{appId}. Você pode definir esse valor usando a variável deAWS_SDK_UA_APP_IDambiente ou o atributo de perfil de configuraçãosdk_ua_app_idcompartilhado. - CAPath, Arquivo CA
-
Instrui o cliente HTTP sobre onde encontrar o armazenamento confiável de certificados SSL. Um exemplo de armazenamento confiável pode ser um diretório preparado com o utilitário
c_rehashOpenSSL. Essas variáveis não precisam ser definidas, a menos que seu ambiente use links simbólicos. Essas variáveis não têm efeito nos sistemas Windows e macOS. - Configuração da soma de verificação
-
Contém configurações de cálculo e validação da soma de verificação. Inclui
requestChecksumCalculationeresponseChecksumValidationcom valor padrão WHEN_SUPPORTED. - Configurar fábricas
-
Especifica métodos de fábrica para inicializar classes de utilitários do cliente, como e.
ExecutorRetryStrategyUsa fábricas padrão, a menos que seja substituído. - requestTimeoutMs and connectTimeoutMs
-
Especifica a quantidade de tempo em milissegundos de espera antes de atingir o tempo limite de uma solicitação HTTP. Por exemplo, considere aumentar esses tempos ao transferir arquivos grandes.
- credentialProviderConfig
-
Contém configurações para provedores de credenciais. Use essa estrutura para personalizar a forma como o SDK obtém AWS as credenciais.
- disableExpectHeader
-
Aplicável somente para clientes HTTP CURL. Por padrão, o CURL adiciona um cabeçalho “Expect: 100-Continue” em uma solicitação HTTP para evitar o envio da carga HTTP em situações em que o servidor responde com um erro imediatamente após receber o cabeçalho. Esse comportamento pode economizar uma viagem de ida e volta e é útil em situações em que a carga útil é pequena e a latência da rede é relevante. A configuração padrão da variável é falsa. Se definido como verdadeiro, o CURL é instruído a enviar o cabeçalho da solicitação HTTP e a carga útil do corpo juntos.
- Desativar o IMDS
-
Controla se as chamadas do Instance Metadata Service (IMDS) estão desativadas. A configuração padrão é falsa. Defina como true para desativar as chamadas do IMDS quando executadas fora das EC2 instâncias.
- Desativar o IMDSv1
-
Controla se IMDSv1 as chamadas são desativadas durante a permissão IMDSv2. A configuração padrão é falsa. Defina como true para desativar somente IMDSv1 chamadas para aumentar a segurança.
- enableClockSkewAjuste
-
Controla se a inclinação do relógio é ajustada após cada tentativa de HTTP. A configuração padrão é falsa.
- enableEndpointDiscovery
-
Controla se a descoberta de endpoints é usada. Por padrão, endpoints regionais ou substituídos são usados. Para habilitar a descoberta de endpoints, defina a variável como verdadeira.
- enableHostPrefixInjeção
-
Controla se o host HTTP adiciona um prefixo “data-” às DiscoverInstances solicitações. Por padrão, esse comportamento está habilitado. Para desativá-la, defina a variável como falsa.
- enableHttpClientTraço
-
Controla se o rastreamento do cliente HTTP está habilitado para fins de depuração. A configuração padrão é falsa. Defina como true para habilitar o registro detalhado de solicitações e respostas HTTP.
- enableTcpKeepVivo
-
Controla se os pacotes TCP keep-alive devem ser enviados. A configuração padrão é verdadeira. Use em conjunto com a
tcpKeepAliveIntervalMsvariável. Essa variável não se aplica ao Win INet e ao IXMLHTTPRequest2 cliente. - Substituição do endpoint
-
Especifica um endpoint HTTP substitutivo com o qual se comunicar com um serviço.
- executor
-
Referencia a implementação do manipulador executor assíncrono. O comportamento padrão é criar e separar um encadeamento para cada chamada assíncrona. Para alterar esse comportamento, implemente uma subclasse da
Executorclasse e atribua uma instância a essa variável. - Siga os redirecionamentos
-
Controla o comportamento ao lidar com códigos de redirecionamento HTTP 300.
- httpLibOverride
-
Especifica a implementação HTTP retornada pela fábrica HTTP padrão. O cliente HTTP padrão para Windows é WinHTTP. O cliente HTTP padrão para todas as outras plataformas é CURL.
- httpLibPerfModo
-
Especifica o modo de desempenho da biblioteca HTTP. A configuração padrão é LOW_LATENCY. Você pode ajustar essa configuração para otimizar as diferentes características de desempenho.
- httpRequestTimeoutSrta
-
Especifica o tempo limite da solicitação HTTP em milissegundos. O valor padrão é 0 (sem tempo limite). Considere aumentar esse valor ao transferir arquivos grandes.
- lowSpeedLimit
-
Especifica a velocidade de transferência mínima permitida em bytes por segundo. Se a velocidade de transferência cair abaixo da velocidade especificada, a operação de transferência será abortada. A configuração padrão é 1 byte/segundo. Essa variável é aplicável somente para clientes CURL.
- Conexões máximas
-
Especifica o número máximo de conexões HTTP com um único servidor. O valor padrão é 25. Não existe nenhum valor máximo permitido além do que sua largura de banda pode razoavelmente suportar.
- nonProxyHosts
-
Especifica uma matriz de nomes de host que devem ignorar as configurações de proxy. Use essa configuração para excluir hosts específicos da configuração do proxy.
- profileName
-
Especifica o nome do AWS perfil a ser usado para configuração. O SDK carrega as configurações do perfil especificado no arquivo de AWS configuração.
- proxyCaFile
-
Especifica o caminho para o arquivo da autoridade de certificação para conexões proxy quando ele é diferente do padrão.
- proxyCaPath
-
Especifica o caminho para o armazenamento confiável da autoridade de certificação para conexões proxy quando ele é diferente do padrão.
- ProxyScheme, ProxyHost, ProxyPort e ProxyPassword proxyUserName
-
Usado para instalar e configurar um proxy para todas as comunicações com AWS. Exemplos de quando essa funcionalidade pode ser útil incluem a depuração em conjunto com a suíte Burp ou o uso de um proxy para se conectar à Internet.
- SSLCertCaminho do proxy
-
Especifica o caminho para o arquivo de certificado SSL para conexões proxy que exigem certificados de cliente.
- SSLCertTipo de proxy
-
Especifica o tipo de certificado SSL para conexões proxy. Os tipos comuns incluem PEM e DER.
- SSLKeySenha do proxy
-
Especifica a senha da chave privada SSL usada em conexões proxy quando a chave é protegida por senha.
- SSLKeyCaminho do proxy
-
Especifica o caminho para o arquivo de chave privada SSL para conexões proxy que exigem certificados de cliente.
- SSLKeyTipo de proxy
-
Especifica o tipo de chave privada SSL para conexões proxy. Os tipos comuns incluem PEM e DER.
- writeRateLimiter and readRateLimiter
-
Referências às implementações de limitadores de taxa de leitura e gravação que são usados para limitar a largura de banda usada pela camada de transporte. Por padrão, as taxas de leitura e gravação não são limitadas. Para introduzir a limitação, implemente uma subclasse do
RateLimiterInterfacee atribua uma instância a essas variáveis. - região
-
Especifica a AWS região a ser usada, como us-east-1. Por padrão, a Região usada é a Região padrão configurada nas AWS credenciais aplicáveis.
- requestCompressionConfig
-
Contém configurações para compactação de solicitações. Use essa estrutura para controlar quando e como as solicitações são compactadas antes da transmissão.
- Estratégia de nova tentativa
-
Referencia a implementação da estratégia de repetição. A estratégia padrão implementa uma política de recuo exponencial. Para executar uma estratégia diferente, implemente uma subclasse da
RetryStrategyclasse e atribua uma instância a essa variável. - scheme
-
Especifica o esquema de endereçamento do URI, HTTP ou HTTPS. O esquema padrão é HTTPS.
- tcpKeepAliveIntervalMs
-
Especifica o intervalo de tempo em milissegundos no qual enviar um pacote keep-alive por meio de uma conexão TCP. O intervalo padrão é de 30 segundos. A configuração mínima é de 15 segundos. Essa variável não se aplica ao Win INet e ao IXMLHTTPRequest2 cliente.
- Provedor de telemetria
-
Referencia a implementação do provedor de telemetria para coletar métricas e rastrear dados. Defina essa configuração para ativar os recursos de observabilidade.
- userAgent
-
Apenas para uso interno. Não altere a configuração dessa variável.
- useDualStack
-
Controla se deve usar pilha dupla IPv4 e IPv6 endpoints. Observe que nem todos os AWS serviços oferecem suporte IPv6 em todas as regiões.
- Use FIPS
-
Controla se os módulos criptográficos validados pelo Federal Information Processing Standards (FIPS) 140-2 devem ser usados. A configuração padrão é falsa. Defina como verdadeiro quando a conformidade com FIPS for necessária.
- Verifique o SSL
-
Controla se os certificados SSL devem ser verificados. Por padrão, os certificados SSL são verificados. Para desativar a verificação, defina a variável como falsa.
- version
-
Especifica a versão HTTP a ser usada para solicitações. A configuração padrão é HTTP_VERSION_2TLS (HTTP/2 sobre TLS).
- ganhar HTTPOptions
-
Contém opções de configuração HTTP específicas do Windows. Inclui useAnonymousAuth com a configuração padrão false.