Accéder aux mappages clé-valeur dans Node.js

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Vous pouvez utiliser le module apigee-access pour obtenir des données Edge Key-Value Map (KVM) à partir d'une application Node.js. Cette méthode de récupération KVM est une alternative à l'utilisation de la règle Opérations de mappage de clés-valeurs pour récupérer les données KVM dans un flux de proxy d'API.

Les KVM assurent la persistance à long terme des paires clé/valeur arbitraires que vous pouvez récupérer au moment de l'exécution. Par exemple, vous pouvez stocker les valeurs de quota, les valeurs d'expiration du jeton d'accès OAuth et les valeurs d'expiration du jeton d'actualisation OAuth dans un KVM pour chaque environnement de déploiement, puis récupérer les valeurs dans votre code.

Vous pouvez créer une KVM pour l'un des trois champs d'application suivants: organization, environment et apiproxy. Par exemple, si vous créez un KVM dans le champ d'application apiproxy du proxy "foo", seul le proxy "foo" peut accéder au KVM. Si vous créez un KVM au niveau de l'environnement "test", tous les proxys d'API déployés dans l'environnement "test" d'une organisation peuvent accéder à KVM, mais aucun des proxys déployés dans l'environnement "prod" ne peut y accéder.

Après avoir créé une KVM avec l'API de gestion, l'UI de gestion ou la règle Opérations de mappage de clés-valeurs (voir Mise en cache de persistance à long terme), utilisez les fonctions présentées ici pour récupérer les données.

Pour un excellent modèle KVM, consultez https://community.apigee.com/content/kbentry/24906/a-pattern-for-caching-kvm-values.html.

Pour une présentation du module apigee-access et de ses autres fonctionnalités, consultez la section Utiliser le module apigee-access.

Méthodes

Les méthodes suivantes fonctionnent sur les KVM chiffrées et non chiffrées.


getKeyValueMap

var kvm = apigee.getKeyValueMap('kvm_name', 'scope');
var kvm = apigee.getKeyValueMap('kvm_name', 'api', 'proxy_name');

Récupère un KVM pour un champ d'application particulier (organisation, environnement, API ou révision). Une fois l'objet KVM renvoyé, utilisez les fonctions getKeys et get pour renvoyer les noms de clé ou une valeur de clé spécifique.

Paramètres :

  • kvm_name : nom du KVM auquel accéder
  • scope : champ d'application du KVM. Indiquez organization, environment, api, ou revision.
  • proxy_name - Pour un champ d'application de api uniquement, nom du proxy d'API.

Renvoie :

Un objet KVM.

Exemple :

var apigee = require('apigee-access');
var kvm = apigee.getKeyValueMap('my_kvm', 'environment');

Si vous définissez scope sur api, un troisième paramètre est obligatoire : le nom du proxy d'API. Exemple :

var kvm = apigee.getKeyValueMap('my_kvm', 'api', 'myApiProxy');

getKeys

var kvmKeys = apigee.getKeys(function(err, keys_array);

Renvoie un tableau contenant les noms de toutes les clés du KVM.

Paramètres :

  • callback: (obligatoire) la fonction de rappel utilise deux paramètres :
    • Objet Error si l'opération échoue.
    • Un objet (keys_array dans l'exemple ci-dessus) qui représente le tableau de noms de clés KVM.

Renvoie :

Tableau de noms de clés KVM.

Exemple :

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

obtenir

kvm.get('key', function(err, key_value));

Récupère la valeur d'une clé KVM.

Paramètres :

  • key: (obligatoire) chaîne identifiant de manière unique l'élément dans le cache.

  • callback: (obligatoire) la fonction de rappel utilise deux paramètres:

    • Objet Error si l'opération échoue.
    • Objet contenant la valeur de clé KVM sous forme de chaîne.

Exemple :

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