您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
您可以使用 apigee-access 模块从 Node.js 应用中获取 Edge 键值对映射 (KVM) 数据。此 KVM 检索方法是使用 Key Value Map Operations 政策在 API 代理流中检索 KVM 数据的替代方法。
KVM 可提供任意键值对的长期持久保留,您可以在运行时检索这些键值对。例如,您可以针对每个部署环境在 KVM 中存储配额值、OAuth 访问令牌过期时间值和 OAuth 刷新令牌过期时间值,然后在代码中检索这些值。
您可以在以下三个范围之一创建 KVM:organization、environment 和 apiproxy。例如,如果您为“foo”代理在 apiproxy 范围内创建 KVM,则只有“foo”代理可以访问该 KVM;如果您在“测试”环境范围内创建 KVM,则部署在组织“测试”环境中的所有 API 代理都可以访问该 KVM,但部署在“生产”环境中的任何代理都无法访问该 KVM。
使用 Management API、管理界面或键值对映射操作政策(请参阅长期持久性缓存)创建 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 代理的名称。
返回:
KVM 对象。
示例:
var apigee = require('apigee-access'); var kvm = apigee.getKeyValueMap('my_kvm', 'environment');
如果您将 scope 设置为 api,则需要提供第三个参数,即 API 代理的名称。例如:
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); });