Momento SDKを使用したアプリケーションの開発
ようこそ このページでは、すべてのSDKでMomentoクライアントをアセンブルするために必要な一般的な構成に関する情報を 提供します。このページでは、Momento の認証情報 (API キーと呼ばれる) の提供方法、クライアントの設定方法、エラー処理と本番環境への対応に関する基本的な情報を説明します。
キャッシュ・クライアントの構築
CacheClient
は、Momento サービスとやり取りする際に使用するメインのオブジェクトです。インスタンスを作成するには、CredentialProvider
と Configuration
、そしてデフォルトの TTL (time to live) 値を渡す必要があります。デフォルトの TTL は、その CacheClient
を使用しているアイテムがキャッシュから削除されるまでの保存期間を決定します。Set` オペレーションを実行する場合、そのオペレーション固有の TTL 値をオーバーライドすることができます。詳細は Momento Cache における Time-to-Live (TTL) によるデータの有効期限 を参照してください。
以下に CacheClient
の作成例を示します:
- JavaScript
- Python
- Java
- Kotlin
- Go
- PHP
- Rust
- Elixir
- Swift
- Dart
return await CacheClient.create({
configuration: Configurations.Laptop.v1(),
credentialProvider: CredentialProvider.fromEnvironmentVariable('MOMENTO_API_KEY'),
defaultTtlSeconds: 60,
});
await CacheClientAsync.create(
Configurations.Laptop.latest(),
CredentialProvider.from_environment_variable("MOMENTO_API_KEY"),
timedelta(seconds=60),
)
try (CacheClient cacheClient =
CacheClient.create(
CredentialProvider.fromEnvVar("MOMENTO_API_KEY"),
Configurations.Laptop.v1(),
Duration.ofSeconds(60))) {
// ...
}
CacheClient(
CredentialProvider.fromEnvVar("MOMENTO_API_KEY"), Configurations.Laptop.latest, 60.seconds
).use { cacheClient ->
//...
}
context := context.Background()
credentialProvider, err = auth.NewEnvMomentoTokenProvider("MOMENTO_API_KEY")
if err != nil {
panic(err)
}
defaultTtl := 60 * time.Second
eagerConnectTimeout := 30 * time.Second
client, err = momento.NewCacheClientWithEagerConnectTimeout(
config.LaptopLatest(),
credentialProvider,
defaultTtl,
eagerConnectTimeout,
)
if err != nil {
panic(err)
}
client.Ping(context)
new CacheClient(
Laptop::latest(),
CredentialProvider::fromEnvironmentVariable("MOMENTO_API_KEY"),
60
);
let _cache_client = CacheClient::builder()
.default_ttl(Duration::from_secs(60))
.configuration(Laptop::latest())
.credential_provider(CredentialProvider::from_env_var(
"MOMENTO_API_KEY".to_string(),
)?)
.build()?;
config = Momento.Configurations.Laptop.latest()
credential_provider = Momento.Auth.CredentialProvider.from_env_var!("MOMENTO_AUTH_TOKEN")
default_ttl_seconds = 60.0
Momento.CacheClient.create!(config, credential_provider, default_ttl_seconds)
do {
let credentialProvider = try CredentialProvider.fromEnvironmentVariable(envVariableName: "MOMENTO_API_KEY")
let cacheClient = CacheClient(
configuration: CacheClientConfigurations.iOS.latest(),
credentialProvider: credentialProvider,
defaultTtlSeconds: 10
)
} catch {
print("Unable to create cache client: \(error)")
exit(1)
}
try {
final cacheClient = CacheClient(
CredentialProvider.fromEnvironmentVariable("MOMENTO_API_KEY"),
CacheClientConfigurations.latest(),
Duration(seconds: 30));
} catch (e) {
print("Unable to create cache client: $e");
exit(1);
}
Momento API キーを使用してクレデンシャル・プロバイダをインスタンス化する
Momentoクライアントをインスタンス化する際に、Momento APIキーを提供する必要があります。まだ持っていない場合は、Momento Web Console から取得できます。トークンを取得したら、CredentialProvider
のインスタンスを作 成する際に Momento SDK にトークンを渡す。環境変数または文字列から CredentialProvider
オブジェクトを作成するための便利なファクトリメソッドが用意されています。以下は、環境変数から CredentialProvider
のインスタンスを生成する方法の例です:
- JavaScript
- Python
- Java
- Kotlin
- Go
- PHP
- Rust
- Elixir
CredentialProvider.fromEnvironmentVariable('MOMENTO_API_KEY');
CredentialProvider.from_environment_variable("MOMENTO_API_KEY")
CredentialProvider.fromEnvVar("MOMENTO_API_KEY");
CredentialProvider.fromEnvVar("MOMENTO_API_KEY")
credentialProvider, err = auth.NewEnvMomentoTokenProvider("MOMENTO_API_KEY")
if err != nil {
panic(err)
}
CredentialProvider::fromEnvironmentVariable("MOMENTO_API_KEY");
let _credential_provider = CredentialProvider::from_env_var("MOMENTO_API_KEY".to_string());
allow(non_snake_case)]
b fn example_API_ConfigurationLaptop() {
let _config = momento::cache::configurations::Laptop::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationInRegionDefaultLatest() {
let _config = momento::cache::configurations::InRegion::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationInRegionLowLatency() {
let _config = momento::cache::configurations::LowLatency::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationLambdaLatest() {
let _config = momento::cache::configurations::Lambda::latest();
allow(non_snake_case)]
b fn example_API_InstantiateCacheClient() -> Result<(), MomentoError> {
let _cache_client = CacheClient::builder()
.default_ttl(Duration::from_secs(60))
.configuration(Laptop::latest())
.credential_provider(CredentialProvider::from_env_var(
"MOMENTO_API_KEY".to_string(),
)?)
.build()?;
Momento.Auth.CredentialProvider.from_env_var!("MOMENTO_AUTH_TOKEN")
Momentoの認証トークンをAWS Secret ManagerやGCP Secret Managerなどのシークレットマネージャやローカルの設定ファイルに保存している場合は、まずそこから認証情報を取得し、次のように文字列からCredentialProvider
をインスタンス化する必要があります:
- JavaScript
- Java
- Kotlin
- Go
- Rust
- Elixir
const apiKey = retrieveApiKeyFromYourSecretsManager();
CredentialProvider.fromString({apiKey: apiKey});
final String authToken = retrieveAuthTokenFromYourSecretsManager();
CredentialProvider.fromString(authToken);
val authToken = retrieveAuthTokenFromYourSecretsManager()
CredentialProvider.fromString(authToken)
apiKey := RetrieveApiKeyFromYourSecretsManager()
credentialProvider, err = auth.NewStringMomentoTokenProvider(apiKey)
if err != nil {
fmt.Println("Error parsing API key:", err)
}
let _credential_provider = CredentialProvider::from_string("my-api-key".to_string());
allow(non_snake_case)]
b fn example_API_CredentialProviderFromEnvVar() {
let _credential_provider = CredentialProvider::from_env_var("MOMENTO_API_KEY".to_string());
allow(non_snake_case)]
b fn example_API_ConfigurationLaptop() {
let _config = momento::cache::configurations::Laptop::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationInRegionDefaultLatest() {
let _config = momento::cache::configurations::InRegion::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationInRegionLowLatency() {
let _config = momento::cache::configurations::LowLatency::latest();
allow(non_snake_case)]
b fn example_API_ConfigurationLambdaLatest() {
let _config = momento::cache::configurations::Lambda::latest();
allow(non_snake_case)]
b fn example_API_InstantiateCacheClient() -> Result<(), MomentoError> {
let _cache_client = CacheClient::builder()
.default_ttl(Duration::from_secs(60))
.configuration(Laptop::latest())
.credential_provider(CredentialProvider::from_env_var(
"MOMENTO_API_KEY".to_string(),
)?)
.build()?;
auth_token = retrieve_auth_token_from_your_secrets_manager()
Momento.Auth.CredentialProvider.from_string!(auth_token)
AWS Secrets Manager から認証情報を取得する例については、Retrieving a Momento auth token from AWS Secrets Manager を参照してください。
Momento 認証に関する一般的な情報は、認証のページ を参照してください。
詳細については、レスポンスオブジェクトのページや、使用しているSDKのドキュメント(左ナビの Develop
->SDKs
の下)を参照してください。