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

管理 API、管理 UI、または Key Value Map Operations ポリシーを使用して KVM を作成したら(長期の永続性キャッシュを参照)、ここで関数を使用してデータを取得します。

優れた KVM パターンについては、ttps://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 関数を使用して、キー名または特定の Key-Value を返します。

パラメータ:

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

戻り値:

KVM オブジェクト。

例:

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

scopeapi に設定する場合、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);
});