メインコンテンツまでスキップ

RustでMomentoストレージを始める

RustとMomento Storageをすぐに使い始める必要がある場合、このページには必要な基本的なAPIコールが含まれています。Rust SDK のサンプル には、ビルド設定ファイルを含む完全なサンプルがあります。

Momento SDKをインストールする

Momento SDKはcrates.io: momentoで入手できます。

ヒント

crates.ioにアクセスし、利用可能な最新バージョンのSDKを見つけてください。

既存のRustプロジェクトにクライアントライブラリをインストールする:

cargo add momento

APIキーの設定

Momentoで認証するには、Momento APIキーが必要です。 Momento Web Console](https://console.gomomento.com/api-keys)から取得できます。 APIキーを取得したら、Momentoクライアントが利用できるように環境変数に保存してください:

export MOMENTO_API_KEY=<your Momento API key here>

ライブラリをインポートして接続し、StorageClientオブジェクトを返す

このコードでは、メイン関数、必要なインポート、StorageClientを設定します。

use momento::{
storage, CredentialProvider, MomentoResult, PreviewStorageClient,
};

#[tokio::main]
async fn main() -> MomentoResult<()> {
let storage_client = PreviewStorageClient::builder()
.configuration(storage::configurations::Laptop::latest())
.credential_provider(
CredentialProvider::from_env_var("MOMENTO_API_KEY".to_string())
.expect("API key should be valid"),
)
.build()?;

// ...

Ok(())
}

Momento Storageに新しいストアを作成する

この機能を使用して、アカウントに新しいストアを作成します。

  let response = storage_client.create_store(store_name).await?;
match response {
momento::storage::CreateStoreResponse::Created => println!("Store {} created", store_name),
momento::storage::CreateStoreResponse::AlreadyExists => println!("Store {} already exists", store_name),
}

あなたのアカウントにある既存のストア名をリストアップする

アカウントのストア名の単純なリスト。

  let response = storage_client.list_stores().await?;
println!("Stores: {:#?}", response.stores);

Write an item to a store

ストアにアイテムを書き込む

  storage_client.put(store_name, "key", "value").await?;
println!("Put key and value in store {}", store_name);

ストアのアイテムを読み込む

これは、ストアからアイテムを取得する単純な読み取り操作の例である。

  let response = storage_client.get(store_name, "key").await?;
match response {
momento::storage::GetResponse::NotFound => println!("Key not found in {}", store_name),
momento::storage::GetResponse::Found { value } => {
// A Found response indicates the value was found in the store.

// Use `match` to get the value if you don't know the type beforehand:
match value.clone() {
momento::storage::StorageValue::String(value) => println!("Got string value {}", value),
momento::storage::StorageValue::Bytes(value) => println!("Got bytes value {:?}", value),
momento::storage::StorageValue::Integer(value) => println!("Got integer value {}", value),
momento::storage::StorageValue::Double(value) => println!("Got double value {}", value),
}

// If you know the type you're expecting, you can `try_into()` it directly:
let found_value: String = value.try_into()?;
println!("Got value {}", found_value);
}
}

コードの実行

Rust SDK github repo examples directoryに完全な動作例があります。

備考

これらの基本的なAPIコール以外のMomento APIコールの詳細については、APIリファレンスページをチェックしてください。