Momento SDKを使用したアプリケーションの開発
ようこそ! このページでは、すべてのSDKでMomentoクライアントをアセンブルするために必要な一般的な構成に関する情報を提供します。このページでは、Momento の認証情報 (auth トークンと呼ばれます) の提供方法、クライアントの設定方法、エラー処理と本番環境への対応に関する基本的な情報を説明します。
トピックスクライアントの構築
TopicClient
は、Momento のサービスとやり取りする際に使用するメインのオブジェクトです。インスタンスを作成するには、CredentialProvider
と Configuration
、そしてデフォルトの TTL (time to live) 値を渡す必要があります。デフォルトの TTL は、CacheClient
を使用したアイテムがキャッシュから削除されるまでの保存期間を決定します。
以下は TopicClient
の作成例です:
- JavaScript
- Python
- Kotlin
- Go
- C#
- Rust
- Swift
- Dart
new TopicClient({
configuration: TopicConfigurations.Default.latest(),
credentialProvider: CredentialProvider.fromEnvironmentVariable('MOMENTO_API_KEY'),
});
TopicClientAsync(
TopicConfigurations.Default.latest(), CredentialProvider.from_environment_variable("MOMENTO_API_KEY")
)
TopicClient(
CredentialProvider.fromEnvVar("MOMENTO_API_KEY"), TopicConfigurations.Laptop.latest
).use { topicClient ->
//...
}
credProvider, err := auth.NewEnvMomentoTokenProvider("MOMENTO_API_KEY")
if err != nil {
panic(err)
}
topicClient, err = momento.NewTopicClient(
config.TopicsDefault(),
credProvider,
)
if err != nil {
panic(err)
}
new TopicClient(
TopicConfigurations.Laptop.latest(),
new EnvMomentoTokenProvider("MOMENTO_API_KEY")
);
let _topic_client = TopicClient::builder()
.configuration(momento::topics::configurations::Laptop::latest())
.credential_provider(CredentialProvider::from_env_var("MOMENTO_API_KEY")?)
.build()?;
do {
let credentialProvider = try CredentialProvider.fromEnvironmentVariable(envVariableName: "MOMENTO_API_KEY")
let topicClient = TopicClient(
configuration: TopicClientConfigurations.iOS.latest(),
credentialProvider: credentialProvider
)
} catch {
print("Unable to create topic client: \(error)")
exit(1)
}
try {
final topicClient = TopicClient(
CredentialProvider.fromEnvironmentVariable("MOMENTO_API_KEY"),
TopicClientConfigurations.latest());
} catch (e) {
print("Unable to create topic 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")
AWSシークレットマネージャ、GCPシークレットマネージャ、またはローカルの設定ファイルなどのシークレットマネージャにMomento APIキーを保存している場合は、まずそこから認証情報を取得し、次のように文字列から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
の下)を参照してください。