

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione generale utilizzando `Aws::SDKOptions` in AWS SDK per C\$1\$1
<a name="sdkoptions"></a>

La [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)struttura contiene le opzioni di configurazione SDK. `Aws::SDKOptions`si concentra sulla configurazione generale dell'SDK, mentre la [`ClientConfiguration`](client-config.md)struttura si concentra sulla configurazione della comunicazione con. Servizi AWS

Un'istanza di [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)viene passata ai metodi [`Aws::InitAPI`and `Aws::ShutdownAPI`](basic-use.md). La stessa istanza deve essere inviata a entrambi i metodi.

Gli esempi seguenti illustrano alcune delle opzioni disponibili.
+ Attiva l'accesso utilizzando il logger predefinito

  ```
  Aws::SDKOptions options;
  options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
+ Sostituisci la fabbrica predefinita del client HTTP

  ```
  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`richiede una chiusura (chiamata anche funzione anonima o espressione lambda) anziché una. `std::shared_ptr` Ciascuna delle funzioni di fabbrica dell'SDK funziona in questo modo perché al momento in cui avviene l'allocazione della memoria di fabbrica, il gestore della memoria non è ancora stato installato. Passando una chiusura al metodo, il gestore della memoria verrà chiamato per eseguire l'allocazione della memoria quando è sicuro farlo. Una tecnica semplice per eseguire questa procedura consiste nell'utilizzare un'espressione Lambda.
+ Utilizzate un gestore globale `SIGPIPE`

  Se create l'SDK per C\$1\$1 con curl e OpenSSL, dovete specificare un gestore di segnale. Se non utilizzate un gestore di segnali personalizzato, impostatelo su. `installSigPipeHandler` `true`

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

  In caso `installSigPipeHandler` `true` affermativo, l'SDK for C\$1\$1 utilizza un gestore `SIGPIPE` che ignora i segnali. Per ulteriori informazioni`SIGPIPE`, consultate [Operation Error Signals](https://www.gnu.org/software/libc/manual/html_node/Operation-Error-Signals.html) sul sito web del sistema operativo GNU. Per ulteriori informazioni sul gestore curl, vedete [CURLOPT\$1NOSIGNAL spiegato sul sito web curl](https://curl.se/libcurl/c/CURLOPT_NOSIGNAL.html).

  Le librerie sottostanti di curl e OpenSSL possono inviare `SIGPIPE` un segnale per notificare quando il lato remoto chiude una connessione. Questi segnali devono essere gestiti dall'applicazione. Per maggiori informazioni su questa funzionalità curl, consulta [libcurl thread safety sul sito web curl](https://curl.se/libcurl/c/threadsafe.html). Questo comportamento non è automaticamente integrato nell'SDK perché i gestori di segnale sono globali per ogni applicazione e la libreria è una dipendenza dell'SDK. 