

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

# AWS SDK for Rust を使用した AWS のサービス リクエストの作成
<a name="make-request"></a>

 プログラムを使用して AWS のサービスにアクセスするために、AWS SDK for Rust は各 AWS のサービスにクライアント構造体を使用します。例えば、アプリケーションが Amazon EC2 にアクセスする必要がある場合、アプリケーションはそのサービスとインターフェイスをとる Amazon EC2 クライアント構造体を作成します。次に、サービスクライアントを使用して、その AWS のサービス に対してリクエストを実行します。

AWS のサービス にリクエストするには、最初にサービスクライアントを作成して[設定](configure.md)する必要があります。コードが使用する各 AWS のサービス には、専用のクレートと、やり取りを行うための専用の型があります。クライアントは、サービスが提供する各 API オペレーションに対応するメソッドをそれぞれ公開しています。

 AWS SDK for Rust で AWS のサービスとやり取りするには、サービス固有のクライアントを作成して、その API メソッドを fluent builder スタイルの連鎖で使用し、`send()` を呼び出してリクエストを実行します。

`Client` は、サービスが提供する各 API オペレーションに対応するメソッドをそれぞれ公開しています。これらの各メソッドの戻り値は「fluent builder」であり、その API に対するさまざまな入力がビルダースタイルの関数呼び出しの連鎖によって追加されます。サービスのメソッドを呼び出した後に `send()` を呼び出して [https://doc.rust-lang.org/nightly/core/future/trait.Future.html](https://doc.rust-lang.org/nightly/core/future/trait.Future.html) を取得します。これにより、正常な出力または `SdkError` のいずれかが生成されます。`SdkError` の詳細については、「[AWS SDK for Rust でのエラーの処理](error-handling.md)」を参照してください。

次の例は、Amazon S3 を使用して `us-west-2` AWS リージョン にバケットを作成する基本的なオペレーションを示しています。

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .load()
    .await;
  
let s3 = aws_sdk_s3::Client::new(&config);
  
let result = s3.create_bucket()
    // Set some of the inputs for the operation.
    .bucket("my-bucket")
    .create_bucket_configuration(
        CreateBucketConfiguration::builder()
            .location_constraint(aws_sdk_s3::types::BucketLocationConstraint::UsWest2)
            .build()
        )
    // send() returns a Future that does nothing until awaited.
    .send()
    .await;
```

各サービスクレートには、次のような API 入力に使用される追加モジュールがあります。
+ `types` モジュールには、より複雑な構造化情報を提供するための構造体または列挙型があります。
+  `primitives` モジュールには、日時やバイナリ BLOB などのデータを表現するためのより単純な型があります。

 サービスクレートの詳細なクレート構成や情報の詳細については、「[API リファレンスドキュメント](https://awslabs.github.io/aws-sdk-rust/)」を参照してください。例えば、Amazon Simple Storage Service `aws-sdk-s3` のクレートには、複数の[モジュール](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/#modules)があります。そのうちの 2 つは次のとおりです。
+ [https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/types/index.html](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/types/index.html)
+ [https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/primitives/index.html](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/primitives/index.html)