ソモサン

私rohkiによる活動や読書の記録をつらつらと書くページです

Rust の ライブラリ Rusoto を使って AWS サービスにアクセスする

表題にあるとおり、Rust から AWS にアクセスするための SDK を大分前にメモしていたので試した、という話。

extern crate rusoto_core;
extern crate rusoto_s3;

use rusoto_s3::{S3, S3Client};
use rusoto_core::{DefaultCredentialsProvider, Region};
use rusoto_core::default_tls_client;

fn main() {
    let provider = DefaultCredentialsProvider::new().unwrap();
    let client = S3Client::new(default_tls_client().unwrap(), provider, Region::ApNortheast1);

    match client.list_buckets() {
        Ok(output) => {
            match output.buckets {
                Some(bucket_name_list) => {
                    println!("Tables in database:");

                    for bucket in bucket_name_list {
                        println!("{:?}", bucket.name);
                    }
                }
                None => println!("No tables in database!"),
            }
        }
        Err(error) => {
            println!("Error: {:?}", error);
        }
    }
}

S3 のバケット列挙がこんな具合。
対応状況曰く、今のところ安定しているのが、

  • EC2
  • ECS
  • DynamoDB
  • ETS
  • KMS
  • SQS

らしいってS3入ってないじゃん!動いたよ上のコード!
と、ということはログを受けまくって AWS にあげてくれるやつが書けるかも…

楽しくなってまいりました。