Node.js で Key-Value マップにアクセスする

apigee-access モジュールを使用して、Node.js アプリケーション内から Edge の Key-Value マップ(KVM)のデータを取得できます。この KVM 取得方法は、Key Value Map Operations ポリシーを使用して API プロキシフローで KVM データを取得する方法の代わりになります。

KVM は、実行時に取得できる任意の Key-Value ペアの長期永続性を提供します。たとえば、デプロイ環境ごとに、割り当て値、OAuth アクセス トークンの有効期限値、OAuth リフレッシュ トークンの有効期限値を KVM に格納した後、コード内でそれらの値を取得できます。

KVM は、organizationenvironmentapiproxy の 3 つのスコープのいずれかで作成できます。たとえば、"foo" プロキシの apiproxy スコープで KVM を作成した場合、その KVM にアクセスできるのは "foo" プロキシだけです。また、"test" 環境のスコープで KVM を作成した場合、組織の "test" 環境にデプロイされたすべての API プロキシはその KVM にアクセスできますが、"prod" 環境にデプロイされたプロキシはアクセスできません。

管理 API、管理 UI、Key Value Map Operations ポリシーのいずれかで KVM を作成した後(長期永続性キャッシングを参照)、ここで紹介する関数を使用してデータを取得します。

有用な KVM のパターンについては、https://community.apigee.com/content/kbentry/24906/a-pattern-for-caching-kvm-values.html をご覧ください。

apigee-access モジュールと、このモジュールのその他の機能については、apigee-access モジュールをご覧ください。

メソッド

以下のメソッドは、暗号化された KVM と暗号化されていない KVM の両方で動作します。


getKeyValueMap

    var kvm = apigee.getKeyValueMap('kvm_name', 'scope');
    var kvm = apigee.getKeyValueMap('kvm_name', 'api', 'proxy_name');
    

特定のスコープ(組織、環境、api、またはリビジョン)で KVM を取得します。KVM オブジェクトが返された後、getKeys および get 関数を使用して、キー名または特定のキー値を返します。

パラメータ:

  • kvm_name - アクセスする KVM の名前。
  • scope - KVM のスコープ。organization, environment, api, revision のいずれかです。
  • proxy_name - apiスコープでのみ、API プロキシの名前。

戻り値:

KVM オブジェクト。

例:

    var apigee = require('apigee-access');
    var kvm = apigee.getKeyValueMap('my_kvm', 'environment');
    

スコープapi に設定する場合、3 つ目のパラメータとして API プロキシの名前が必要です。例:

    var kvm = apigee.getKeyValueMap('my_kvm', 'api', 'myApiProxy');
    

getKeys

var kvmKeys = apigee.getKeys(function(err, keys_array);

KVM 内のすべてのキーの名前を格納した配列を返します。

パラメータ:

  • callback: (必須)コールバック関数は次の 2 つのパラメータを使用します。
    • オペレーションが失敗した場合の Error オブジェクト。
    • KVM キー名の配列を表すオブジェクト(上記の例では keys_array)。

戻り値:

KVM キー名の配列。

例:

    var apigee = require('apigee-access');
    var kvm = apigee.getKeyValueMap('my_kvm', 'environment');
      kvm.getKeys(function(err, keys_array) {
        //use the array of key names here
    });
    

get

kvm.get('key', function(err, key_value));

KVM キーの値を取得します。

パラメータ:

  • key: (必須)キャッシュ内のアイテムを一意に識別する文字列。

  • callback: (必須)コールバック関数は次の 2 つのパラメータを使用します。

    • オペレーションが失敗した場合の Error オブジェクト。
    • KVM キー値を文字列として含むオブジェクト。

例:

    var apigee = require('apigee-access');
    var kvm = apigee.getKeyValueMap('my_kvm', 'environment');
      kvm.get('foo_key', function(err, key_value) {
        //Use the key value here. For example the following assigns the value
        //to a 'kvmvalue' variable in the response, which can be used by policies:
          apigee.setVariable(response, 'kvmvalue', key_value);
    });