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

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

您可以使用 apigee-access 模組,從 Node.js 應用程式中取得 Edge 鍵值對應 (KVM) 資料。這個 KVM 擷取方法是使用 鍵/值對應作業政策擷取 API 代理程式流程中 KVM 資料的替代方法。

KVM 可提供任意鍵/值組合的長期持久性,讓您在執行階段擷取這些組合。舉例來說,您可以為每個部署環境在 KVM 中儲存配額值、OAuth 存取權權杖到期值和 OAuth 重新整理權杖到期值,然後在程式碼中擷取這些值。

您可以在下列三個範圍之一建立 KVM:organizationenvironmentapiproxy。舉例來說,如果您在「foo」proxy 的 apiproxy 範圍中建立 KVM,只有「foo」proxy 可以存取 KVM;如果您在「test」環境範圍中建立 KVM,則機構的「test」環境中部署的所有 API proxy 都可以存取 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 物件。
    • 代表 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:(必要) 回呼函式使用兩個參數:

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