גישה למפות של ערכים מרכזיים ב-Node.js

אתם צופים במסמכי העזרה של Apigee Edge.
לעיון במאמרי העזרה של Apigee X.
מידע

אפשר להשתמש במודול apigee-access כדי לקבל נתונים של מפת מפתח/ערך (KVM) של Edge מתוך אפליקציית Node.js. השיטה הזו לאחזור KVM היא חלופה לשימוש במדיניות של פעולות של מפת מפתח/ערך כדי לאחזר נתוני KVM בתהליך של שרת proxy ל-API.

KVMs מספקים עמידות לטווח ארוך של צמדי מפתח/ערך שרירותיים, שאפשר לאחזר במהלך זמן הריצה. לדוגמה, אפשר לאחסן ב-KVM את ערכי המכסות, את ערכי התוקף של אסימוני הגישה של OAuth ואת ערכי התוקף של אסימוני הרענון של OAuth לכל סביבת פריסה, ואז לאחזר את הערכים בקוד.

אפשר ליצור מכונה וירטואלית של KVM באחד משלושת ההיקפים הבאים: organization,‏ environment ו-apiproxy. לדוגמה, אם יוצרים KVM ברמת apiproxy לשרת ה-proxy 'foo', רק שרת ה-proxy 'foo' יכול לגשת ל-KVM. לחלופין, אם יוצרים KVM ברמת הסביבה 'test', כל שרתי ה-proxy של ה-API שנפרסו בסביבה 'test' של הארגון יכולים לגשת ל-KVM, אבל אף אחד מהשרתים הווירטואליים שנפרסו בסביבה 'prod' לא יכול לגשת אליו.

אחרי שיוצרים KVM באמצעות ממשק ה-API לניהול, ממשק המשתמש לניהול או מדיניות פעולות של מפת מפתח/ערך (ראו אחסון במטמון לטווח ארוך), משתמשים בפונקציות שמפורטות כאן כדי לאחזר את הנתונים.

דפוס מצוין ל-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');

אחזור של KVM בהיקף מסוים (ארגון, סביבה, API או גרסה). אחרי שאובייקט ה-KVM מוחזר, משתמשים בפונקציות getKeys ו-get כדי להחזיר את שמות המפתחות או ערך מפתח ספציפי.

פרמטרים:

  • kvm_name – שם ה-KVM שצריך לגשת אליו.
  • scope – היקף ה-KVM. אחת מהאפשרויות הבאות: organization, ‏ environment, api, או revision.
  • proxy_name – בהיקף של api בלבד, שם שרת ה-proxy של ה-API.

החזרות:

אובייקט KVM.

דוגמה:

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

אם מגדירים את scope ל-api, נדרש פרמטר שלישי – השם של שרת ה-proxy ל-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
}); 

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