

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á.

# Configuração geral usando `Aws::SDKOptions` no AWS SDK para C\$1\$1
<a name="sdkoptions"></a>

A estrutura [https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html) contém opções de configuração do SDK. `Aws::SDKOptions` se concentra na configuração geral do SDK, enquanto a estrutura [`ClientConfiguration`](client-config.md) se concentra na configuração da comunicação com Serviços da AWS.

Uma instância de [https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html) é transmitida para os [métodos `Aws::InitAPI` e `Aws::ShutdownAPI`](basic-use.md). A mesma instância deve ser enviada aos dois métodos.

Os exemplos a seguir demonstram algumas das opções disponíveis.
+ Ativar o registro em log usando o registrador padrão.

  ```
  Aws::SDKOptions options;
  options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
+ Substituir a fábrica de clientes HTTP padrão.

  ```
  Aws::SDKOptions options;
  options.httpOptions.httpClientFactory_create_fn = [](){
          return Aws::MakeShared<MyCustomHttpClientFactory>(
              "ALLOC_TAG", arg1);
      };
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
**nota**  
 `httpOptions` recebe um encerramento (também chamado de função anônima ou expressão lambda) em vez de um `std::shared_ptr`. Cada uma das funções de fábrica do SDK opera dessa maneira porque, no momento em que ocorre a alocação de memória de fábrica, o gerenciador de memória ainda não foi instalado. Ao transmitir um encerramento para o método, o gerenciador de memória será chamado para realizar a alocação de memória quando for seguro fazer isso. Uma técnica simples para realizar esse procedimento é usar uma expressão Lambda.
+ Usar um manipulador `SIGPIPE` global

  Se você compilar o SDK para C\$1\$1 com curl e OpenSSL, deverá especificar um manipulador de sinal. Se você não usa seu próprio manipulador de sinal personalizado, defina `installSigPipeHandler` como `true`.

  ```
  Aws::SDKOptions options;
  options.httpOptions.installSigPipeHandler = true; 
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```

  Quando `installSigPipeHandler` é `true`, o SDK para C\$1\$1 usa um manipulador que ignora os sinais `SIGPIPE`. Para acessar mais informações sobre `SIGPIPE`, consulte [Operation Error Signals](https://www.gnu.org/software/libc/manual/html_node/Operation-Error-Signals.html) no site do sistema operacional GNU. Para acessar mais informações sobre o manipulador de curl, consulte [CURLOPT\$1NOSIGNAL explained](https://curl.se/libcurl/c/CURLOPT_NOSIGNAL.html) no site do curl.

  As bibliotecas subjacentes do curl e do OpenSSL podem enviar um sinal `SIGPIPE` para notificar quando o lado remoto fecha uma conexão. Esses sinais devem ser processados pela aplicação. Para acessar mais informações sobre essa funcionalidade de curl, consulte [libcurl thread safety](https://curl.se/libcurl/c/threadsafe.html) no site do curl. Esse comportamento não é incorporado automaticamente ao SDK porque os manipuladores de sinais são globais para cada aplicação e a biblioteca é uma dependência do SDK. 