<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
您可以使用 apigee-access
模块获取 Edge 键值对映射 (KVM)
Node.js 应用中的数据。这种 KVM 检索方法
键值对映射
操作政策,用于在 API 代理流中检索 KVM 数据。
KVM 能够长期保留任意键值对, 运行时。例如,您可以存储配额值、OAuth 访问令牌到期值和 OAuth 在 KVM 中针对每个部署环境刷新令牌过期值,然后检索 值。
您可以在以下三个范围之一创建 KVM:organization
、
environment
和apiproxy
。例如,如果您创建一个 KVM
“foo”的 apiproxy 范围只有“foo”代理可以访问 KVM;或者创建一个
在“test”中运行 KVM环境范围,组织“测试”中部署的所有 API 代理
环境可以访问 KVM,但“生产环境”中部署的环境可以
访问它。
使用 Management API、管理界面或键值对映射操作创建 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 对象返回时,请使用 getKeys
和 get
函数返回
键名称或特定键值的值。
参数:
- kvm_name - 要访问的 KVM 的名称。
- scope - KVM 的作用域。
organization
、environment, api,
或revision
之一。 - proxy_name - 范围为 仅限 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); });