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

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

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

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

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

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

ดูรูปแบบ KVM ที่ดีได้ที่รูปแบบสำหรับการแคชค่า KVM

ดูข้อมูลเบื้องต้นเกี่ยวกับโมดูล 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 รายการ ดังนี้
    • ออบเจ็กต์ข้อผิดพลาดหากการดำเนินการล้มเหลว
    • ออบเจ็กต์ (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: (ต้องระบุ) ฟังก์ชัน 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);
});