翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コードでの AWS SDK for Rust サービスクライアントの設定
設定がコード内で直接処理される場合、設定のスコープは、そのコードを使用するアプリケーションに限定されます。そのアプリケーション内には、すべてのサービスクライアントに対するグローバル設定、特定の AWS のサービス タイプのすべてのクライアントに対する設定、特定のサービスクライアントインスタンスに対する設定のオプションがあります。
AWS のサービス にリクエストを行うには、まずそのサービスのクライアントをインスタンス化します。タイムアウトや HTTP クライアント、再試行設定など、サービスクライアントの共通設定を行うことができます。
各サービスクライアントには AWS リージョン と認証情報プロバイダーが必要です。SDK はこれらの値を使用して、リソースの正しいリージョンにリクエストを送信し、正しい認証情報でリクエストに署名します。これらの値はコード内でプログラムによって指定することも、環境から自動的にロードされるようにすることもできます。
注記
サービスクライアントはコンストラクトにコストがかかることが多く、一般的に共有されることを想定しています。これを容易にするため、すべての Client 構造体は Clone を実装します。
環境からクライアントを設定する
環境ソース設定でクライアントを作成するには、aws-config クレートの静的メソッドを使用します。
let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
この方法でクライアントを作成すると、Amazon Elastic Compute Cloud、AWS Lambda、またはサービスクライアントの設定が環境から直接利用できるその他のコンテキストで実行する場合も効果があります。これにより、コードが実行環境から分離され、コードを変更せずに複数の AWS リージョンにデプロイしやすくなります。
特定のプロパティを明示的にオーバーライドできます。明示的な設定は、実行環境から解決される設定よりも優先されます。次の例では、環境から設定を読み込みますが、明示的に AWS リージョン をオーバーライドしています。
let config = aws_config::defaults(BehaviorVersion::latest()) .region("us-east-1") .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
注記
すべての設定値がクライアントの作成時に読み込まれるわけではありません。クライアントがリクエストを行う際に、一時的なアクセスキーや IAM Identity Center の設定などの認証情報関連の設定は、認証情報プロバイダーレイヤーによってアクセスされます。
前の例に示すコード BehaviorVersion::latest() は、デフォルトに使用する SDK のバージョンを示しています。BehaviorVersion::latest() は、ほとんどのケースで適しています。詳細については、「AWS SDK for Rust での動作バージョンの使用」を参照してください。
サービス固有の設定にビルダーパターンを使用する
オプションの中には、特定のサービスクライアントタイプでのみ設定できるものがあります。ただし、ほとんどの場合、設定の大部分は環境から読み込み、その後に追加のオプションを特に指定して追加する場合が多いです。ビルダーパターンは、AWS SDK for Rust クレート内の一般的なパターンです。まず aws_config::defaults を使用して一般的な設定を読み込み、次に from メソッドを使用して、その設定を作業中のサービスのビルダーに読み込みます。その後、そのサービスの一意の設定値を設定し、build を呼び出すことができます。最後に、この変更後の設定からクライアントが作成されます。
// Call a static method on aws-config that sources default config values. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; // Use the Builder for S3 to create service-specific config from the default config. let s3_config = aws_sdk_s3::config::Builder::from(&config) .accelerate(true) // Set an S3-only configuration option .build(); // Create the client. let s3 = aws_sdk_s3::Client::from_conf(s3_config);
特定のタイプのサービスクライアントで使用できる追加メソッドを検出する方法の 1 つは、aws_sdk_s3::config::Builder
高度な明示的なクライアント設定
環境から設定をロードする代わりに、特定の値でサービスクライアントを設定するには、次に示すように、クライアント Config ビルダーで指定できます。
let conf = aws_sdk_s3::Config::builder() .region("us-east-1") .endpoint_resolver(my_endpoint_resolver) .build(); let s3 = aws_sdk_s3::Client::from_conf(conf);
aws_sdk_s3::Config::builder() を使用してサービス設定を作成した場合、デフォルト設定は読み込まれません。デフォルトは、aws_config::defaults に基づいて設定を作成する場合にのみ読み込まれます。
オプションの中には、特定のサービスクライアントタイプでのみ設定できるものがあります。前の例は、Amazon S3 クライアントで endpoint_resolver 関数を使用する例を示しています。