🦀

【祝】AWS SDK for Rust が GA しました

2023/11/28に公開

はじめに

AWS SDK for Rust が GA しました。What's new はこちらでリリースブログはこちらです。

2021 年に Developer Preview で発表されてからおよそ 2 年でようやく GA しました。以前 Rust で書いた Lambda を動かす記事を書いたことがあったのですが AWS サービスとやり取りするコードにしなかったので物足りなさを感じていました。Rust SDK が GA したことで検証用のコードはできるだけ Rust で書いていこうと思えるようになりました。皆さんもぜひ触ってみてください。

もう少しいろいろ触ってみて今年の Rust アドベントカレンダーの記事を書こうと思っています。今回は祝 GA ということで簡単なコードを動かすことだけやってみます。

AWS SDK for Rust とは

その名の通り Rust 版 AWS SDK です。リポジトリはこちら

個人的に Rust のリポジトリは examples が充実している印象があるのですが Rust SDK も example がいくつかあり、/examples に色々なシナリオの例があるのと、/examples/examples にさまざまな AWS サービスを使った例がまとまっています。例えば S3 の場合だとバケットを作成したりオブジェクトを作成したりするような基本的操作の例がたくさんあるので、何かやりたいことがある方はまずはここから探してみるといいんじゃないかなと思います。

実際にやってみた

リポジトリを公開しているのでまず動かしてみたい方は git clone して cargo run してみてください。READMD に書いている Getting Started をなぞっているだけで、リージョンにある DynamoDB テーブルを 10 件取得して表示します。

use aws_sdk_dynamodb::{Client, Error};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let sdk_config = aws_config::load_from_env().await;
    let client = Client::new(&sdk_config);
    let res = client.list_tables().limit(10).send().await?;
    println!("Current DynamoDB tables: {:?}", res.table_names());
    Ok(())
}

おわりに

まだ簡単なサンプルを動かしただけなのでもう少し触ってみようと思います。今のところ気になっているのはテストをどう書くとよさそうなのかと OpenTelemetry でトレーシングするならどう書くのがよさそうかです。

Discussion