コードでの AWS SDK for C++ サービスクライアントの設定 - AWS SDK for C++

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

コードでの AWS SDK for C++ サービスクライアントの設定

コードで設定を直接処理する場合、設定の範囲は、そのコードを使用するアプリケーションに限定されます。そのアプリケーション内には、すべてのサービスクライアントのグローバル設定、特定の AWS のサービス タイプのすべてのクライアントに対する設定、または特定のサービスクライアントインスタンスに対する設定のオプションがあります。

AWS SDK for C++ には、アプリケーション AWS のサービス で使用する を操作する機能を提供する AWS のサービス クライアントクラスが含まれています。SDK for C++ では、デフォルトのクライアント設定を変更できます。これは、次のような操作を行う場合に役立ちます。

  • プロキシを使用したインターネットへの接続

  • HTTP トランスポートの設定 (接続タイムアウトやリクエスト再試行など) の変更

  • TCP ソケットバッファのサイズに関するヒントの指定

ClientConfiguration は、コードでインスタンス化して使用できる SDK for C++ の構造です。次のスニペットは、このクラスを使用してプロキシ経由で Amazon S3 にアクセスする方法を示しています。

Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);

設定変数宣言

ClientConfiguration 構造体は次のメンバー変数を宣言します。

Aws::String accountId; Aws::String accountIdEndpointMode = "preferred"; bool allowSystemProxy = false; Aws::String appId; Aws::String caPath; Aws::String caFile; struct { RequestChecksumCalculation requestChecksumCalculation = RequestChecksumCalculation::WHEN_SUPPORTED; ResponseChecksumValidation responseChecksumValidation = ResponseChecksumValidation::WHEN_SUPPORTED; } checksumConfig; ProviderFactories configFactories = ProviderFactories::defaultFactories; long connectTimeoutMs = 1000; struct CredentialProviderConfiguration { Aws::String profile; Aws::String region; struct { long metadataServiceNumAttempts = 1; long metadataServiceTimeout = 1; std::shared_ptr<RetryStrategy> imdsRetryStrategy; bool disableImdsV1; bool disableImds; } imdsConfig; struct STSCredentialsCredentialProviderConfiguration { Aws::String roleArn; Aws::String sessionName; Aws::String tokenFilePath; std::chrono::milliseconds retrieveCredentialsFutureTimeout = std::chrono::seconds(10); } stsCredentialsProviderConfig; } credentialProviderConfig; bool disableExpectHeader = false; bool disableIMDS = false; bool disableImdsV1 = false; bool enableClockSkewAdjustment = true; Aws::Crt::Optional<bool> enableEndpointDiscovery; bool enableHostPrefixInjection = true; bool enableHttpClientTrace = false; bool enableTcpKeepAlive = true; Aws::String endpointOverride; std::shared_ptr<Aws::Utils::Threading::Executor> executor = nullptr; FollowRedirectsPolicy followRedirects; Aws::Http::TransferLibType httpLibOverride; Aws::Http::TransferLibPerformanceMode httpLibPerfMode = Http::TransferLibPerformanceMode::LOW_LATENCY; long httpRequestTimeoutMs = 0; unsigned long lowSpeedLimit = 1; unsigned maxConnections = 25; Aws::Utils::Array<Aws::String> nonProxyHosts; Aws::String profileName; Aws::String proxyCaFile; Aws::String proxyCaPath; Aws::Http::Scheme proxyScheme; Aws::String proxyHost; unsigned proxyPort = 0; Aws::String proxyUserName; Aws::String proxyPassword; Aws::String proxySSLCertPath; Aws::String proxySSLCertType; Aws::String proxySSLKeyPath; Aws::String proxySSLKeyType; Aws::String proxySSLKeyPassword; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> readRateLimiter = nullptr; Aws::String region; Aws::Client::RequestCompressionConfig requestCompressionConfig; long requestTimeoutMs = 0; std::shared_ptr<RetryStrategy> retryStrategy = nullptr; Aws::Http::Scheme scheme; unsigned long tcpKeepAliveIntervalMs = 30000; std::shared_ptr<smithy::components::tracing::TelemetryProvider> telemetryProvider; Aws::String userAgent; bool useDualStack = false; bool useFIPS = false; bool verifySSL = true; Aws::Http::Version version = Http::Version::HTTP_VERSION_2TLS; struct WinHTTPOptions { bool useAnonymousAuth = false; } winHTTPOptions; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> writeRateLimiter = nullptr; static Aws::String LoadConfigFromEnvOrProfile(const Aws::String& envKey, const Aws::String& profile, const Aws::String& profileProperty, const Aws::Vector<Aws::String>& allowedValues, const Aws::String& defaultValue);

設定変数の説明

次のリストでは、クライアントの動作をカスタマイズするために使用できるClientConfigurationメンバー変数について説明します。

accountId

アカウントベースのエンドポイントルーティングの AWS アカウント ID を指定します。形式 111122223333 を使用します。アカウントベースのエンドポイントルーティングは、一部のサービスのリクエストパフォーマンスを向上させます。

accountIdEndpointMode

アカウントベースのエンドポイントルーティング動作を制御します。有効な値は、「必須」、「無効」、または「優先」です。デフォルト値は「推奨」です。必要に応じてアカウントベースのエンドポイントルーティングをオフにするには、「disabled」に設定します。

allowSystemProxy

HTTP クライアントがシステムプロキシ設定を検出するかどうかを制御します。デフォルト設定は false です。自動プロキシ検出を有効にするには、true に設定します。

appId

オプションのアプリケーション固有の識別子を指定します。設定すると、この値は 形式の User-Agent ヘッダーに追加されますApp/{appId}。この値は、AWS_SDK_UA_APP_ID環境変数またはsdk_ua_app_id共有設定プロファイル属性を使用して設定できます。

caPath、caFile

SSL 証明書の信頼ストアの場所を HTTP クライアントに指示します。信頼ストアの例は、OpenSSL c_rehashユーティリティで準備されたディレクトリです。環境がシンボリックリンクを使用しない限り、これらの変数を設定する必要はありません。これらの変数は Windows および macOS システムには影響しません。

checksumConfig

チェックサムの計算と検証の設定が含まれます。WHEN_SUPPORTED にデフォルト値responseChecksumValidationrequestChecksumCalculationと が含まれます。

configFactories

Executor や などのクライアントユーティリティクラスを初期化するためのファクトリメソッドを指定しますRetryStrategy。上書きされない限り、デフォルトのファクトリを使用します。

requestTimeoutMs と connectTimeoutMs

HTTP リクエストをタイムアウトするまでの待機時間をミリ秒単位で指定します。たとえば、大きなファイルを転送する際は、これらの時間を増やすことを検討してください。

credentialProviderConfig

認証情報プロバイダーの設定が含まれます。この構造を使用して、SDK が AWS 認証情報を取得する方法をカスタマイズします。

disableExpectHeader

CURL HTTP クライアントにのみ適用されます。デフォルトでは、CURL は HTTP リクエストに「Expect: 100-Continue」ヘッダーを追加して、ヘッダーを受け取った直後にサーバーがエラーで応答する状況で HTTP ペイロードを送信しないようにします。この動作によりラウンドトリップを節約でき、ペイロードが小さく、ネットワークレイテンシーが関連する状況で役立ちます。変数のデフォルト設定は false です。true に設定すると、CURL は HTTP リクエストヘッダーと本文ペイロードの両方を一緒に送信するように指示されます。

disableIMDS

インスタンスメタデータサービス (IMDS) 呼び出しを無効にするかどうかを制御します。デフォルト設定は false です。EC2 インスタンスの外部で実行するときに IMDS 呼び出しを無効にするには、true に設定します。

disableImdsV1

IMDSv2 を許可しながら IMDSv1 IMDSv2呼び出しを無効にするかどうかを制御します。デフォルト設定は false です。セキュリティを強化するために IMDSv1 呼び出しのみを無効にするには、true に設定します。

enableClockSkewAdjustment

HTTP 試行のたびにクロックスキューを調整するかどうかを制御します。デフォルト設定は false です。

enableEndpointDiscovery

エンドポイント検出を使用するかどうかを制御します。デフォルトでは、リージョンエンドポイントまたはオーバーライドされたエンドポイントが使用されます。エンドポイント検出を有効にするには、 変数を true に設定します。

enableHostPrefixInjection

HTTP ホストが DiscoverInstances リクエストに「data-」プレフィックスを追加するかどうかを制御します。デフォルトでは、この動作は有効になっています。無効にするには、変数を false に設定します。

enableHttpClientTrace

HTTP クライアントトレースをデバッグ目的で有効にするかどうかを制御します。デフォルト設定は false です。true に設定すると、詳細な HTTP リクエストとレスポンスのログ記録が有効になります。

enableTcpKeepAlive

TCP キープアライブパケットを送信するかどうかを制御します。デフォルト設定は true です。を tcpKeepAliveIntervalMs変数と組み合わせて使用します。この変数は、WinINet および IXMLHTTPRequest2 クライアントには適用されません。

endpointOverride

サービスと通信する上書きする HTTP エンドポイントを指定します。

エグゼキュター

非同期 Executor ハンドラーの実装を参照します。デフォルトの動作では、非同期呼び出しごとにスレッドを作成およびデタッチします。この動作を変更するには、 Executorクラスのサブクラスを実装し、この変数にインスタンスを割り当てます。

followRedirects

HTTP 300 リダイレクトコードを処理する際の動作を制御します。

httpLibOverride

デフォルトの HTTP ファクトリによって返される HTTP 実装を指定します。Windows のデフォルトの HTTP クライアントは WinHTTP です。他のすべてのプラットフォームのデフォルトの HTTP クライアントは CURL です。

httpLibPerfMode

HTTP ライブラリのパフォーマンスモードを指定します。デフォルト設定は LOW_LATENCY です。この設定を調整して、さまざまなパフォーマンス特性に合わせて最適化できます。

httpRequestTimeoutMs

HTTP リクエストのタイムアウトをミリ秒単位で指定します。デフォルト値は 0 (タイムアウトなし) です。大きなファイルを転送する際は、この値を増やすことを検討してください。

lowSpeedLimit

1 秒あたりの最小許容転送速度をバイト単位で指定します。転送速度が指定された速度を下回ると、転送オペレーションは中止されます。デフォルト設定は 1 バイト/秒です。この変数は CURL クライアントにのみ適用されます。

maxConnections

1 つのサーバーへの HTTP 接続の最大数を指定します。デフォルト値は 25 です。帯域幅が合理的にサポートできる値以外の最大許容値は存在しません。

nonProxyHosts

プロキシ設定をバイパスするホスト名の配列を指定します。この設定を使用して、プロキシ設定から特定のホストを除外します。

profileName

設定に使用する AWS プロファイル名を指定します。SDK は、設定ファイルの指定されたプロファイルから AWS 設定をロードします。

proxyCaFile

プロキシ接続がデフォルトと異なる場合の認証機関ファイルへのパスを指定します。

proxyCaPath

プロキシ接続がデフォルトと異なる場合に、認証機関の信頼ストアへのパスを指定します。

proxyScheme、proxyHost、proxyPort、proxyUserName、proxyPassword

とのすべての通信のプロキシを設定および設定するために使用されます AWS。この機能が役立つ例としては、Burp スイートと組み合わせてデバッグしたり、プロキシを使用してインターネットに接続したりできます。

proxySSLCertPath

クライアント証明書を必要とするプロキシ接続の SSL 証明書ファイルへのパスを指定します。

proxySSLCertType

プロキシ接続の SSL 証明書タイプを指定します。一般的なタイプには、PEM と DER があります。

proxySSLKeyPassword

キーがパスワードで保護されている場合にプロキシ接続で使用される SSL プライベートキーのパスワードを指定します。

proxySSLKeyPath

クライアント証明書を必要とするプロキシ接続の SSL プライベートキーファイルへのパスを指定します。

proxySSLKeyType

プロキシ接続の SSL プライベートキータイプを指定します。一般的なタイプには、PEM と DER があります。

writeRateLimiter と readRateLimiter

トランスポートレイヤーで使用される帯域幅を調整するために使用される読み取りおよび書き込みレートリミッターの実装への参照。デフォルトでは、読み取りレートと書き込みレートはスロットリングされません。スロットリングを導入するには、 のサブクラスを実装RateLimiterInterfaceし、これらの変数にインスタンスを割り当てます。

region

us-east-1 など、使用する AWS リージョンを指定します。デフォルトでは、使用されるリージョンは、該当する AWS 認証情報で設定されたデフォルトのリージョンです。

requestCompressionConfig

リクエスト圧縮の設定が含まれます。この構造を使用して、送信前にリクエストを圧縮するタイミングと方法を制御します。

retryStrategy

再試行戦略の実装を参照します。デフォルトの戦略では、エクスポネンシャルバックオフポリシーを実装します。別の戦略を実行するには、 RetryStrategyクラスのサブクラスを実装し、この変数にインスタンスを割り当てます。

scheme

HTTP または HTTPS のいずれかの URI アドレス指定スキームを指定します。デフォルトのスキームは HTTPS です。

tcpKeepAliveIntervalMs

TCP 接続経由でキープアライブパケットを送信する時間間隔をミリ秒単位で指定します。デフォルトの間隔は 30 秒です。最小設定は 15 秒です。この変数は、WinINet および IXMLHTTPRequest2 クライアントには適用されません。

telemetryProvider

メトリクスを収集し、データをトレースするためのテレメトリプロバイダーの実装を参照します。オブザーバビリティ機能を有効にするには、この設定を設定します。

userAgent

内部使用のみ。この変数の設定を変更しないでください。

useDualStack

デュアルスタック IPv4 エンドポイントと IPv6 エンドポイントを使用するかどうかを制御します。すべての AWS サービスがすべてのリージョンで IPv6 をサポートしているわけではないことに注意してください。

useFIPS

連邦情報処理標準 (FIPS) 140-2 検証済み暗号化モジュールを使用するかどうかを制御します。デフォルト設定は false です。FIPS コンプライアンスが必要な場合は true に設定します。

verifySSL

SSL 証明書を検証するかどうかを制御します。デフォルトでは、SSL 証明書が検証されます。検証を無効にするには、 変数を false に設定します。

version

リクエストに使用する HTTP バージョンを指定します。デフォルト設定は HTTP_VERSION_2TLS (TLS 経由の HTTP/2) です。

winHTTPOptions

Windows 固有の HTTP 設定オプションが含まれています。useAnonymousAuth とデフォルト設定 false が含まれます。