Momento (Node)でのAPIキーの設定方法

この記事は、「Momento Advent Calendar 2023」の19日目の記事です。Momentoを使う際には、CredentialProviderにAPIキーを渡す方法が2つあります。fromEnvironmentVariableは、SDKが環境変数を読み込むアプリケーションに適しており、fromStringはAPIキーの値そのものを渡す方法です。環境変数にAPIキーを保存している場合はfromEnvironmentVariableを、APIキーを暗号化して管理している場合はfromStringを使用すると良いです。また、MomentoではAPIキーのローテーションも可能です。

広告ここから
広告ここまで

目次

    この記事は「Momento Advent Calendar 2023」19日目の記事です。

    Momentoを使う際、CredentialProviderにAPIキーを渡す方法が2種類あります。この2種の違いに気付けず、すこし時間を取られたことがありましたので、短いですが覚書としてまとめました。

    fromEnvironmentVariableはSDKが環境変数を読みに行く

    Next.jsなどのアプリケーションでは、環境変数を.env.env.localなどに保存します。Momentoの場合、ここでAPIキーを保存することになります。(今回は便宜上APIキーのリフレッシュについては割愛します)

    MOMENTO_API_KEY=eyJlbmRwb2ludCxxxxx

    CredentialProvider.fromEnvironmentVariableを利用する場合、process.env.MOMENTO_API_KEYではなく「環境変数の名前」を渡す必要があります。

    
    
    import { CacheClient, Configurations, CredentialProvider } from '@gomomento/sdk';
    
        const cacheClient = await CacheClient.create({
            configuration: Configurations.Laptop.v1(),
            credentialProvider: CredentialProvider.fromEnvironmentVariable({
                environmentVariableName: "MOMENT_API_KEY",
            }),
            defaultTtlSeconds: 60,
        });

    環境変数名を渡すことで、SDK側が環境変数( process.env )からデータを取得してくれます。基本的にはこの方法で問題ないのですが、Cloudflare Workers / Pages functionsなど、環境変数に設定したデータを取得する方法が異なるインフラではうまく動作しません。

    fromStringでAPIキーの値を直接設定する

    もう一つの方法はfromStringを使うやり方です。こちらはprocess.env.MOMENTO_API_KEYのようにAPIキーの値そのものを渡します。

        const cacheClient = await CacheClient.create({
            configuration: Configurations.Laptop.v1(),
            credentialProvider: CredentialProvider.fromString({
                apiKey: process.env.MOMENT_API_KEY as string
            }),
            defaultTtlSeconds: 60,
        });

    AWSやGCPなどでAPIキーを暗号化して管理している場合、環境変数にはAPIキー情報が保存されていないことがあります。そういった場合にも、こちらの実装方法を使うと良さそうです。

    おわりに

    短いですが、2つの使い分けを簡単にまとめました。MomentoはAPIキーのローテーションもできる様子ですので、できるのならば、AWSのSecrets Managerなどを使って定期的にAPIキーを交換しても良いかもしれません。この辺りもトライでき次第紹介したいと思います。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark