גישה למטמון ב-Node.js

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

אפשר להשתמש במודול apigee-access כדי לגשת למטמון המבוזר של Edge מתוך אפליקציית Node.js. המודול כולל שיטות לקבלת מטמון ולהעברת נתונים, להורדה ולהסרה של נתונים.

המטמון המבוזר של Apigee Edge מאפשר לשמור מחרוזות או נתונים אחרים. כמו רוב המטמון, זהו קובץ מטמון שנמצא בשימוש מועט ביותר ובגודל מקסימלי. ב-Apigee Edge, המטמון מחולק בין כל הצמתים שבהם מופעלת אפליקציית Node.js. אפשר לנהל את המטמון דרך Apigee Edge API. באמצעות ה-API אפשר ליצור משאבי מטמון באופן ידני או להשתמש במשאב שמוגדר כברירת מחדל. כדי לקבל מבוא לשמירה במטמון ב-Apigee Edge, כדאי לעיין במאמר כלי התמדה ב-Edge. למידע נוסף על המטמון המבוזר, ראו דוגמה: שמירה במטמון למטרה כללית.

לקבלת מבוא למודול apigee-access ולתכונות האחרות שלו, קראו את המאמר שימוש במודול הגישה לממשקי API.

שיטות


(1) getCache

var cache = apigee.getCache(cacheName);

מחפשים מטמון בעל שם ויוצרים אותו במקרה הצורך. המטמון שמתקבל משתמש בקבוצה מוגדרת מראש של פרמטרים של תצורה, המתאימים לרוב המצבים.

פרמטרים:

cacheName - מחרוזת, זהו שם המטמון. (לא השם של משאב המטמון).

החזרות:

אובייקט של מטמון.

דוגמה:

var apigee = require('apigee-access');
var cache = apigee.getCache('cache');

(2) getCache (מטמון)

var customCache = apigee.getCache(cacheName, options );

גישה למשאב מותאם אישית של מטמון שצוין באובייקט הגדרה. למידע על יצירת משאב של מטמון, תוכלו לקרוא את המאמר יצירה ועריכה של מטמון של סביבה.

פרמטרים:

cacheName - מחרוזת, זהו השם של המטמון המותאם אישית. (לא השם של המשאב של המטמון)

options – אובייקט הגדרה. האובייקט יכול להיות ריק, או שהוא יכול להכיל את הפרמטרים האופציונליים הבאים:

  • resource: השם של 'משאב מטמון' ב-Apigee שבו מאוחסנים נתוני המטמון. משאבי המטמון משמשים לכוונון עדין של הקצאת הזיכרון ופרמטרים אחרים של המטמון. אם לא מציינים משאב, המערכת משתמשת במשאב שמוגדר כברירת מחדל. אם משאב המטמון לא קיים, השיטה גורמת לשגיאה.

  • scope: ההגדרה קובעת אם לרשומות במטמון יש קידומת כדי למנוע התנגשויות. הערכים החוקיים הם global, application ו-exclusive.

    • global: כל אפליקציות Node.js יוכלו לראות את כל רשומות המטמון באותה "environment" של Apigee.

    • application: כל הקבצים השמורים של Node.js שהם חלק מאותה אפליקציית Apigee Edge, יכולים לראות את כל הרשומות במטמון.

    • exclusive: (ברירת מחדל) רשומות מטמון מוצגות רק למטמוני Node.js באותה אפליקציה עם אותו שם. (זוהי ברירת המחדל)

  • prefix: אם השם של מפתח המטמון כולל תחילית, כפי שמתואר במדיניות אכלוס המטמון ובמדיניות עבודה עם מפתחות מטמון, משתמשים בפרמטר הזה כדי לציין אותה. Edge מוסיפה באופן אוטומטי סיומת של קו תחתון כפול לשם הקידומת. לכן, אם מפתח מטמון נוצר עם הקידומת "UserToken", התחילית שיש לציין כאן היא "UserToken__".

  • defaultTtl: המדיניות הזו קובעת את ברירת המחדל של משך החיים (בשניות) של רשומה מהמטמון. אם לא מציינים את זה, המערכת תשתמש ב-TTL בברירת המחדל של משאב המטמון.

  • timeout: משך הזמן (בשניות) שצריך להמתין לאחזור תוצאה מהמטמון המבוזר. ברירת המחדל היא 30 שניות. יכול להיות שאפליקציות שרגישות לזמן אחזור ירצו לצמצם את משך הזמן הזה כדי למנוע זמני תגובה איטיים במקרה של עומס יתר על תשתית המטמון.

החזרות:

אובייקט מותאם אישית של מטמון.

דוגמה:

var apigee = require('apigee-access');
var customCache = apigee.getCache('doesNotMatter',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken'} );
customCache.put("myCacheKey", "xyz");

זה עובד עם מדיניות LookupCache שהוגדרה כך:

<LookupCache name="Lookup-Cache-1">
  <CacheKey>
    <Prefix>UserToken</prefix>    
    <KeyFragment>myCacheKey</KeyFragment>
  </CacheKey>
  <CacheResource>MyCustomResource</CacheResource>
  <Scope>Global</Scope>
  <AssignTo>contextVariable</AssignTo>
</LookupCache>

פוט

cache.put('key', data, ttl, function(error));

שמירת נתונים במטמון.

פרמטרים:

  • key: (חובה) מחרוזת שמזהה באופן ייחודי את הפריט במטמון. מפתחות מטמון מוגבלים לגודל של 2KB.

  • data: (חובה) מחרוזת, מאגר נתונים זמני או אובייקט שמייצג את הנתונים שנשמרו במטמון. כל סוג אחר של נתונים יגרור שגיאה. מטעמי נוחות, האובייקטים יומרו למחרוזת באמצעות "JSON.stringify".

  • ttl: (אופציונלי) הזמן המקסימלי לשמירת הנתונים במטמון, בשניות. אם לא מציינים שום אפשרות, המערכת תשתמש ב-TTL כברירת מחדל.

  • callback: (אופציונלי) אם מציינים פונקציית היא תיקרא ברגע שהנתונים יישמרו בבטחה במטמון. אם יש שגיאת הזנה, הפונקציה תיקרא באמצעות אובייקט שגיאה כפרמטר הראשון. אחרת, היא תיקרא ללא פרמטרים.

דוגמה:

var apigee = require('apigee-access');
var cache = apigee.getCache();
// Insert a string into cache using the default TTL
cache.put('key1', 'Buenos dias, Mundo!');
// Insert a string into cache using a TTL of 120 seconds
cache.put('key2', 'Hello, World!', 120);
// Insert a string with the default TTL, and get notified when the insert is complete
cache.put('key3', 'Ciao, Mondo!', function(error) {
  // "error" will be falsy unless there was an error on insert
});
// Insert a string with a TTL of 600 seconds, and get notified when the insert is complete
cache.put('key4', 'Hallo Wereld!', 600, function(error) {
  // "error" will be falsy unless there was an error on insert
});

מקבלים

cache.get('key', function(error, data));

אחזור נתונים ממטמון.

פרמטרים:

  • key (חובה): מחרוזת שמזהה באופן ייחודי את הפריט במטמון.

    לגבי רשומות מטמון שהועברו למטמון ממדיניות Apigee Edge (כמו אכלוס מטמון), תצטרכו לבנות את מפתח המטמון על ידי הסקת דרך ספציפית שבה המדיניות יוצרת מפתחות לרשומות. כדי לעשות זאת, צריך לדעת איך המדיניות מוגדרת. בעבודה עם מפתחות מטמון מתואר איך מפתחות מטמון נוצרים על ידי כללי מדיניות, אבל חשוב לזכור שלא צריך לציין ערכי מחרוזת שקשורים להיקף. בקריאות מ-Node.js, ההיקף כבר מהווה חלק מההקשר.

  • callback (חובה): פונקציה שתיקרא כשהנתונים יהיו זמינים. אם יש נתונים שנשמרו במטמון, הם מוחזרים בפרמטר השני.

    • error – אובייקט שגיאה. אם תתרחש שגיאה במהלך אחזור מהמטמון, יוגדר כאן אובייקט שגיאה. אחרת, הפרמטר הזה יוגדר כ'לא מוגדר'.

    • data – הנתונים שאוחזרו, אם יש כאלה. הערך יהיה אחד מתוך ארבעה ערכים:

      • אם נוספה מחרוזת, היא תהיה מחרוזת.
      • אם נוסף מאגר נתונים זמני, הוא יהיה מאגר נתונים זמני.
      • אם נוסף אובייקט, הוא יהיה מחרוזת שמכילה את גרסת ה-JSON של האובייקט כפי שנוצרה על ידי "JSON.stringify".
      • אם לא נמצא כלום, הוא יוגדר כ'לא מוגדר'.

דוגמה:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.get('key', function(error, data) {
  // If there was an error, then "error" will be set.
  // If error is falsy, "data" is the item that was retrieved:
  //   - undefined, in the case of cache miss, or
  //   - a Buffer, or
  //   - a String
});

הסרה

cache.remove('key', function(error));

ניקוי התוקף של פריט שנשמר במטמון. אחרי שמפתח מסוים לא תקין, בקשות get() הבאות יחזירו "undefined" אלא אם יתווסף ערך אחר.

פרמטרים:

  • key (חובה): מחרוזת שמזהה באופן ייחודי את הפריט במטמון כדי לבטל את התוקף שלו.

    לגבי רשומות מטמון שהועברו למטמון ממדיניות Apigee Edge (כמו אכלוס מטמון), תצטרכו לבנות את מפתח המטמון על ידי הסקת דרך ספציפית שבה המדיניות יוצרת מפתחות לרשומות. כדי לעשות זאת, צריך לדעת איך המדיניות מוגדרת. בעבודה עם מפתחות מטמון מתואר איך מפתחות מטמון נוצרים על ידי כללי מדיניות, אבל חשוב לזכור שלא צריך לציין ערכי מחרוזת שקשורים להיקף. בקריאות מ-Node.js, ההיקף כבר מהווה חלק מההקשר.

  • callback (חובה): פונקציית קריאה חוזרת שתיקרא עם אובייקט שגיאה כפרמטר הראשון אם יש שגיאה.

דוגמה:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.remove('key', function(error) {
});