การเข้าถึงแมปค่าคีย์ใน Node.js

คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

คุณสามารถใช้โมดูล apigee-access เพื่อรับข้อมูลการแมปคีย์-ค่า (KVM) ของ Edge จากภายในแอปพลิเคชัน Node.js วิธีการดึงข้อมูล KVM นี้เป็นทางเลือกในการใช้นโยบายการดำเนินการของแผนที่คีย์-ค่าเพื่อดึงข้อมูล KVM ในโฟลว์พร็อกซี API

KVM เก็บคู่คีย์/ค่าที่กำหนดเองไว้อย่างถาวรในระยะยาว ซึ่งคุณจะเรียกดูได้ในรันไทม์ เช่น คุณสามารถจัดเก็บค่าโควต้า ค่าการหมดอายุของโทเค็นการเข้าถึง OAuth และค่าการหมดอายุของโทเค็นการรีเฟรช OAuth ใน KVM สําหรับสภาพแวดล้อมการทําให้ใช้งานได้แต่ละรายการ จากนั้นเรียกค่าเหล่านั้นในโค้ด

คุณสร้าง KVM ได้ที่ขอบเขตใดขอบเขตหนึ่งต่อไปนี้ organization, environment และ apiproxy เช่น หากคุณสร้าง KVM ที่ขอบเขต apiproxy สำหรับพร็อกซี "foo" จะมีเพียงพร็อกซี "foo" เท่านั้นที่เข้าถึง KVM ได้ หรือหากคุณสร้าง KVM ที่ขอบเขตสภาพแวดล้อม "test" พร็อกซี API ทั้งหมดที่ติดตั้งใช้งานในสภาพแวดล้อม "test" ขององค์กรจะเข้าถึง KVM ได้ แต่พร็อกซีทั้งหมดที่ติดตั้งใช้งานในสภาพแวดล้อม "prod" จะเข้าถึงไม่ได้

หลังจากสร้าง KVM ด้วย Management API, UI การจัดการ หรือนโยบายการดำเนินการกับแผนที่คีย์-ค่า (ดูการแคชข้อมูลถาวรระยะยาว) ให้ใช้ฟังก์ชันที่นี่เพื่อเรียกข้อมูล

ดูรูปแบบ 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 เท่านั้น ชื่อของพร็อกซี API

การคืนสินค้า:

ออบเจ็กต์ KVM

ตัวอย่างเช่น

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

หากคุณตั้งค่า scope เป็น api คุณจะต้องระบุพารามิเตอร์ที่ 3 ซึ่งเป็นชื่อของพร็อกซี API เช่น

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

getKeys

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

ส่งคืนอาร์เรย์ที่มีชื่อของคีย์ทั้งหมดใน KVM

พารามิเตอร์:

  • callback: (ต้องระบุ) ฟังก์ชัน Callback ใช้พารามิเตอร์ 2 รายการดังนี้
    • ออบเจ็กต์ 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: (ต้องระบุ) ฟังก์ชัน Callback ใช้พารามิเตอร์ 2 รายการดังนี้

    • ออบเจ็กต์ข้อผิดพลาดหากการดำเนินการล้มเหลว
    • ออบเจ็กต์ที่มีค่าคีย์ 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);
});