

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 `Aws::SDKOptions` 中使用 的一般組態 適用於 C\$1\$1 的 AWS SDK
<a name="sdkoptions"></a>

結構包含 SDK [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) 組態選項。 `Aws::SDKOptions` 著重於一般 SDK 組態，而 [`ClientConfiguration`](client-config.md) 結構著重於與 通訊的組態 AWS 服務。

的執行個體[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)會傳遞至 [`Aws::InitAPI`和 `Aws::ShutdownAPI`方法](basic-use.md)。相同的執行個體應傳送至這兩種方法。

下列範例示範一些可用的選項。
+ 使用預設記錄器開啟記錄

  ```
  Aws::SDKOptions options;
  options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
+ 覆寫預設 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);
  ```
**注意**  
 `httpOptions` 需要關閉 （也稱為匿名函數或 Lambda 表達式），而不是 `std::shared_ptr`。每個 SDK 原廠函數都以這種方式運作，因為在發生原廠記憶體配置時，尚未安裝記憶體管理員。透過將關閉傳遞至 方法，將呼叫記憶體管理員，以便在安全的情況下執行記憶體配置。完成此程序的簡單技巧是使用 Lambda 表達式。
+ 使用全域`SIGPIPE`處理常式

  如果您使用 curl 和 OpenSSL 建置適用於 C\$1\$1 的 SDK，則必須指定訊號處理常式。如果您不使用自己的自訂訊號處理常式，請將 `installSigPipeHandler`設定為 `true`。

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

  當 `installSigPipeHandler`為 時`true`，適用於 C\$1\$1 的 SDK 會使用忽略`SIGPIPE`訊號的處理常式。如需 的詳細資訊`SIGPIPE`，請參閱 GNU 作業系統網站上的[操作錯誤訊號](https://www.gnu.org/software/libc/manual/html_node/Operation-Error-Signals.html)。如需 curl 處理常式的詳細資訊，請參閱 curl 網站上的 [CURLOPT\$1NOSIGNAL 說明](https://curl.se/libcurl/c/CURLOPT_NOSIGNAL.html)。

  curl 和 OpenSSL 的基礎程式庫可以傳送`SIGPIPE`訊號，以在遠端關閉連線時通知 。這些訊號必須由應用程式處理。如需此 curl 功能的詳細資訊，請參閱 curl 網站上的 [libcurl 執行緒安全](https://curl.se/libcurl/c/threadsafe.html)。此行為不會自動內建於 SDK，因為訊號處理常式對於每個應用程式都是全域的，程式庫是 SDK 的相依性。