

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK for C\$1\$1 での `Aws::SDKOptions` を使用した一般的な設定
<a name="sdkoptions"></a>

[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) 構造体には、SDK 設定オプションが含まれています。`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` は `std::shared_ptr` ではなくクロージャ (匿名関数または Lambda 式とも呼ばれる) を受け取ります。SDK の各ファクトリ関数はこの方法で動作します。ファクトリのメモリ割り当てが行われる時点では、メモリマネージャーがまだインストールされていないためです。メソッドにクロージャを渡すことで、安全なタイミングでメモリマネージャーが呼び出され、メモリ割り当てが行われます。この処理を実現する簡単な方法は、Lambda 式を使用することです。
+ グローバル `SIGPIPE` ハンドラーを使用する

  curl と OpenSSL を使用して SDK for C\$1\$1 をビルドする場合は、シグナルハンドラーを指定する必要があります。カスタムのシグナルハンドラーを使用しない場合は、`installSigPipeHandler` を `true` に設定します。

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

  `installSigPipeHandler` が `true` の場合、SDK for C\$1\$1 は `SIGPIPE` シグナルを無視するハンドラーを使用します。`SIGPIPE` の詳細については、GNU オペレーティングシステムのウェブサイトで「[Operation Error Signals](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 thread safety](https://curl.se/libcurl/c/threadsafe.html)」を参照してください。この動作は SDK に自動で組み込まれていません。シグナルハンドラーは各アプリケーションに対してグローバルであり、ライブラリが SDK の依存関係であるためです。