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

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

您可以使用 apigee-access 模組,從 Node.js 應用程式中取得 Edge 鍵值對應 (KVM) 資料。這個 KVM 擷取方法可做為替代方案,用來在 API Proxy 流程中擷取 KVM 資料,而不必使用鍵/值對應作業政策

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

您可以在下列三種範圍建立 KVM:organizationenvironmentapiproxy。舉例來說,如果您在「foo」Proxy 的 apiproxy 範圍建立 KVM,只有「foo」Proxy 可以存取該 KVM;如果您在「test」環境範圍建立 KVM,機構「test」環境中部署的所有 API Proxy 都可以存取該 KVM,但「prod」環境中部署的 Proxy 都無法存取。

使用管理 API、管理 UI 或鍵值對應作業政策建立 KVM 後 (請參閱「長期持續性快取」),即可使用此處的函式擷取資料。

如要瞭解優質的 KVM 模式,請參閱「用於快取 KVM 值的模式」。

如要瞭解 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 - 僅限 scopeapi 時,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
});

取得

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