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リファレンスページをチェックしてください。