您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
您可以使用 apigee-access 模組,從 Node.js 應用程式中取得 Edge 鍵值對應 (KVM) 資料。這個 KVM 擷取方法可做為替代方案,用來在 API Proxy 流程中擷取 KVM 資料,而不必使用鍵/值對應作業政策。
KVM 可長期保存任意鍵/值組合,您可以在執行階段擷取這些組合。舉例來說,您可以為每個部署環境將配額值、OAuth 存取權杖到期值和 OAuth 更新權杖到期值儲存在 KVM 中,然後在程式碼中擷取這些值。
您可以在下列三種範圍建立 KVM:organization、environment 和 apiproxy。舉例來說,如果您在「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 物件傳回後,請使用 getKeys 和 get 函式傳回金鑰名稱或特定金鑰值。
參數:
- kvm_name - 要存取的 KVM 名稱。
- scope - KVM 的範圍。請選擇
organization、environment, api,或revision。 - proxy_name - 僅限 scope 為 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 });
取得
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); });