在 Node.js 中存取鍵/值對應

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

您可以使用 apigee-access 模組取得 Edge 鍵/值對應 (KVM) 從 Node.js 應用程式內 存取自己的資料這種 KVM 擷取方法是使用 鍵/值對應 作業政策:在 API Proxy 流程中擷取 KVM 資料。

KVM 可長期保存任意鍵/值組合,您可在此擷取這些組合 執行階段。例如,您可以儲存配額值、OAuth 存取權杖有效期限值和 OAuth 重新整理各個部署環境 KVM 中的權杖到期時間值,然後擷取 以便正確處理

您可以透過下列任一範圍建立 KVM:organizationenvironmentapiproxy。舉例來說,如果您在 「foo」的 apiproxy 範圍Proxy,只有「foo」Proxy 可以存取 KVM;或者 「test」的 KVM環境範圍,所有部署於機構的「test」 環境可存取 KVM,但「prod」環境中部署的 Proxy環境 存取權。

使用 Management API、管理 UI 或鍵/值對應作業建立 KVM 之後 政策 (請參閱長期政策 持續性快取),請使用這裡的函式擷取資料。

如需良好的 KVM 模式,請參閱 https://community.apigee.com/content/kbentry/24906/a-pattern-for-caching-kvm-values.html

如需 apigee-access 模組和其其他功能的簡介, 請參閱使用 apigee-access 模組

方法

下列方法適用於已加密及未加密的 KVM。


getKeyValueMap

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

擷取特定範圍 (機構、環境、API 或修訂版本) 的 KVM。在 傳回 KVM 物件,請使用 getKeysget 函式傳回 鍵名或特定鍵/值

參數:

  • kvm_name - 要存取的 KVM 名稱。
  • scope - KVM 的範圍。可以是 organizationenvironment, api,revision 其中之一。
  • proxy_name - 關於範圍 僅限 api,API 的名稱 Proxy 上。

傳回:

KVM 物件。

範例:

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

如果您將 scope 設為 api,就必須使用第三個參數: 以及 API Proxy 的名稱例如:

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

getKeys

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

傳回包含 KVM 所有鍵名稱的陣列。

參數:

  • callback:(必要) 回呼函式使用兩個 參數:
    • 如果作業失敗,則為 Error 物件。
    • 代表keys_array KVM 金鑰名稱陣列。

傳回:

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
}); 

取得

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

取得 KVM 金鑰的值。

參數:

  • key:(必要) 專門用來識別的字串。 快取中的項目。

  • callback:(必要) 回呼函式使用兩個 參數:

    • 如果作業失敗,則為 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);
});