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

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

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

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

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

หลังจากที่คุณสร้าง KVM ด้วย 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 ที่จะเข้าถึง
  • ขอบเขต - ขอบเขตของ KVM เป็น organization, environment, api, หรือ revision
  • proxy_name - สำหรับ scope ของ 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: (ต้องระบุ) ฟังก์ชันเรียกกลับใช้พารามิเตอร์ 2 ตัว ได้แก่
    • ออบเจ็กต์ข้อผิดพลาดหากการดำเนินการล้มเหลว
    • ออบเจ็กต์ (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
}); 

รับ

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

รับค่าของคีย์ KVM

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

  • key: (ต้องระบุ) สตริงที่ระบุรายการในแคชโดยไม่ซ้ำกัน

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