

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

# 使用 AWS SDK for Rust 提出 AWS 服務 請求
<a name="make-request"></a>

 若要以程式設計方式存取 AWS 服務，適用於 Rust 的 AWS SDK 會為每個 使用用戶端結構 AWS 服務。例如，如果您的應用程式需要存取 Amazon EC2，您的應用程式會建立 Amazon EC2 用戶端結構，以與該服務連接。然後，您可以使用 服務用戶端向該用戶端提出請求 AWS 服務。

若要向 提出請求 AWS 服務，您必須先建立和[設定](configure.md)服務用戶端。對於 AWS 服務 每個程式碼使用，它都有自己的木箱和自己的專用類型來與其互動。用戶端會針對服務公開的每個 API 操作公開一個方法。

 若要在 AWS SDK for Rust AWS 服務 中與 互動，請建立服務特定的用戶端、搭配流暢的建置器樣式鏈結使用其 API 方法，然後呼叫 `send()` 來執行請求。

會針對服務公開的每個 API 操作`Client`公開一個方法。每個方法的傳回值都是「流動建置器」，其中建置器樣式函數呼叫鏈結會新增該 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` 的詳細資訊，請參閱[處理適用於 Rust 的 AWS SDK 中的錯誤](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)。其中兩個是：
+ [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)