在 Node.js 中访问键值对映射

您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

您可以使用 apigee-access 模块从 Node.js 应用中获取 Edge 键值对映射 (KVM) 数据。这种 KVM 检索方法是使用 Key Value Map Operations 政策在 API 代理流程中检索 KVM 数据的替代方法。

KVM 可长期保留任意键值对,以便您在运行时检索。例如,您可以为每个部署环境在 KVM 中存储配额值、OAuth 访问令牌过期值和 OAuth 刷新令牌过期值,然后在代码中检索这些值。

您可以在以下三个范围之一创建 KVM:organizationenvironmentapiproxy。例如,如果您在 apiproxy 范围内为“foo”代理创建 KVM,则只有“foo”代理可以访问该 KVM;如果您在“test”环境范围内创建 KVM,则组织的“test”环境中部署的所有 API 代理都可以访问该 KVM,但“prod”环境中部署的任何代理都无法访问该 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 对象后,使用 getKeysget 函数返回键名称或特定键值。

参数:

  • kvm_name - 要访问的 KVM 的名称。
  • scope - KVM 的范围。organizationenvironment, 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 对象。
    • 一个表示 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
}); 

get

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