您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
您可以使用 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;或是在「測試」環境範圍建立 KVM,則部署於機構「測試」環境的所有 API Proxy 都無法存取 KVM,但無法存取部署在「實際工作環境」環境中的 Proxy。
使用 Management API、管理 UI 或鍵/值對應作業政策建立 KVM (請參閱「長期持續性快取」一節) 後,請使用這裡的函式擷取資料。
如需良好的 KVM 模式,請參閱 https://community.apigee.com/content/kbentry/24906/a-pattern-for-caching-kvm-values.html。
如需 apigee-access
模組及其其他功能的簡介,請參閱使用 apigee-存取 模組。
方法
下列方法可在加密和未加密的 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 - 僅適用於 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); });