

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración general con el uso de `Aws::SDKOptions` en el AWS SDK para C\$1\$1
<a name="sdkoptions"></a>

La estructura [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) contiene las opciones de configuración del SDK. `Aws::SDKOptions` se centra en la configuración general del SDK, mientras que la estructura [`ClientConfiguration`](client-config.md) se centra en la configuración de la comunicación con Servicios de AWS.

Se transfiere una instancia 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) a los [métodos `Aws::InitAPI` y `Aws::ShutdownAPI`](basic-use.md). Se debe enviar la misma instancia a ambos métodos.

En los siguientes ejemplos se muestran algunas de las opciones disponibles.
+ Activación del registro con el registrador predeterminado

  ```
  Aws::SDKOptions options;
  options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
+ Anulación de la fábrica predeterminada de clientes 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` utiliza un cierre (también denominado función anónima o expresión lambda) en lugar de un `std::shared_ptr`. Cada una de las funciones de la fábrica del SDK funciona de esta manera porque, en el momento en que se realiza la asignación de memoria de fábrica, el administrador de memoria no se ha instalado todavía. Al transferir un cierre al método, se llamará al administrador de memoria para que realice la asignación de memoria cuando sea seguro hacerlo. Una técnica sencilla para llevar a cabo este procedimiento consiste en utilizar una expresión lambda.
+ Uso de un controlador `SIGPIPE` global

  Si compila el SDK para C\$1\$1 con curl y OpenSSL, debe especificar un controlador de señales. Si no utiliza su propio controlador de señales personalizado, establezca `installSigPipeHandler` en `true`.

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

  Cuando `installSigPipeHandler` es `true`, el SDK para C\$1\$1 usa un controlador que ignora las señales `SIGPIPE`. Para obtener más información sobre `SIGPIPE`, consulte [Señales de error de operación](https://www.gnu.org/software/libc/manual/html_node/Operation-Error-Signals.html) en el sitio web del sistema operativo GNU. Para obtener más información sobre el controlador curl, consulte [CURLOPT\$1NOSIGNAL](https://curl.se/libcurl/c/CURLOPT_NOSIGNAL.html) en el sitio web de curl.

  Las bibliotecas subyacentes de curl y OpenSSL pueden enviar una señal `SIGPIPE` para notificar cuándo cierra el lado remoto una conexión. La aplicación debe gestionar estas señales. Para obtener más información sobre esta funcionalidad de curl, consulte [libcurl thread safety](https://curl.se/libcurl/c/threadsafe.html) en el sitio web de curl. Este comportamiento no está integrado automáticamente en el SDK porque los controladores de señales son globales para cada aplicación y la biblioteca es una dependencia del SDK. 