

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

# 使用 AWSSDK for Rust 建立簡單的應用程式
<a name="hello"></a>

您可以依照本教學課程建立呼叫 的簡單應用程式，快速開始使用 AWSSDK for RustAWS 服務。

## 先決條件
<a name="prerequisites"></a>

若要使用 適用於 Rust 的 AWS SDK，您必須安裝 Rust 和 Cargo。
+ 安裝 Rust 工具鏈：https：//[https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install)
+ 執行 命令來安裝`cargo-component`[工具](https://github.com/bytecodealliance/cargo-component)： `cargo install cargo-component`

### 建議的工具：
<a name="recommended-tools"></a>

下列選用工具可以安裝在 IDE 中，以協助程式碼完成和故障診斷。
+ rust-analyzer 延伸模組，請參閱 [Visual Studio Code 中的 Rust](https://code.visualstudio.com/docs/languages/rust)。
+ Amazon Q Developer，請參閱[在您的 IDE 中安裝 Amazon Q Developer 延伸模組或外掛程式](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE-setup.html)。

## 建立您的第一個 SDK 應用程式
<a name="hello-world"></a>

此程序會建立您的第一個 SDK for Rust 應用程式，列出您的 DynamoDB 資料表。

1. 在終端機或主控台視窗中，導覽至電腦上您要建立應用程式的位置。

1. 執行下列命令來建立`hello_world`目錄，並將其填入骨架 Rust 專案：

   ```
   $ cargo new hello_world --bin
   ```

1. 導覽至 `hello_world`目錄，並使用下列命令將必要的相依性新增至應用程式：

   ```
   $ cargo add aws-config aws-sdk-dynamodb tokio --features tokio/full,aws-config/credentials-login
   ```

   這些相依性包括提供 DynamoDB 組態功能和支援的 SDK 木箱，包括用於實作非同步 I/O 操作的[`tokio`木箱](https://crates.io/crates/tokio)。
**注意**  
除非您使用 Tokio `tokio/full` 之類的功能，否則 不會提供非同步執行時間。適用於 Rust 的 SDK 需要非同步執行時間。  
`aws-config/credentials-login` 此功能支援 AWS管理主控台登入憑證，如需詳細資訊，請參閱《[AWSSDKs和工具參考指南》中的身分驗證和存取](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)。

1. 在 `main.rs` `src`目錄中更新 以包含下列程式碼。

   ```
   use aws_config::meta::region::RegionProviderChain;
   use aws_config::BehaviorVersion;
   use aws_sdk_dynamodb::{Client, Error};
   
   /// Lists your DynamoDB tables in the default Region or us-east-1 if a default Region isn't set.
   #[tokio::main]
   async fn main() -> Result<(), Error> {
       let region_provider = RegionProviderChain::default_provider().or_else("us-east-1");
       let config = aws_config::defaults(BehaviorVersion::latest())
           .region(region_provider)
           .load()
           .await;
       let client = Client::new(&config);
   
       let resp = client.list_tables().send().await?;
   
       println!("Tables:");
   
       let names = resp.table_names();
   
       for name in names {
           println!("  {}", name);
       }
   
       println!();
       println!("Found {} tables", names.len());
   
       Ok(())
   }
   ```
**注意**  
此範例只會顯示結果的第一頁。請參閱 以[在適用於 Rust 的 AWS SDK 中使用分頁結果](paginating.md)了解如何處理多個結果頁面。

1. 執行程式：

   ```
   $ cargo run
   ```

   您應該會看到資料表名稱的清單。