คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ข้อจำกัดของตัวแปรสภาพแวดล้อม
Hosted Targets จำกัดขนาดและจำนวนตัวแปรสภาพแวดล้อม ที่คุณตั้งค่าได้ในสภาพแวดล้อมรันไทม์ของ Hosted Targets
- 1,000: ความยาวสูงสุดของตัวแปรสภาพแวดล้อมรายการเดียว
- 100: จำนวนตัวแปรสภาพแวดล้อมสูงสุดที่คุณตั้งค่าได้
ดูข้อมูลเกี่ยวกับการตั้งค่าตัวแปรสภาพแวดล้อมได้ที่ ไฟล์ Manifest
ตัวแปรสภาพแวดล้อมที่ตั้งค่าในรันไทม์ของแอปพลิเคชัน
เมื่อคุณทำให้แอปพลิเคชัน Hosted Targets ใช้งานได้ ระบบจะตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้และ แอปพลิเคชันของคุณจะใช้ตัวแปรเหล่านี้ได้ในรันไทม์
APIGEE_ENVIRONMENT- สภาพแวดล้อมที่ทำให้พร็อกซี Hosted Target ใช้งานได้APIGEE_ORGANIZATION- องค์กรที่ทำให้พร็อกซี Hosted Target ใช้งานได้PORT- พอร์ตที่แอปพลิเคชัน Hosted Target ต้องรับฟัง
การจัดสรรทรัพยากรระบบ
อินสแตนซ์ Hosted Targets แต่ละรายการจะได้รับทรัพยากรต่อไปนี้
- หน่วยความจำ 256 MB
- CPU 1.2 GHz
การปรับขนาด
ส่วนนี้อธิบายวิธีที่แอปพลิเคชัน Hosted Targets ปรับขนาด โดยขึ้นอยู่กับประเภทบัญชี Edge ที่คุณมี- Apigee Edge เวอร์ชันทดลองใช้จำกัดไว้ที่อินสแตนซ์ Hosted Targets 1 รายการต่อพร็อกซี
- บัญชี Apigee Edge แบบชำระเงินจะได้รับการปรับขนาดอัตโนมัติตามอัตราการส่งคำขอ เวลาในการตอบสนอง และเมตริกแอปพลิเคชันอื่นๆ ต่อพร็อกซี
- แอป Hosted Targets ที่ทำให้ใช้งานได้ทั้งใน Apigee Edge เวอร์ชันแบบชำระเงินและเวอร์ชันทดลองใช้จะปรับขนาดเป็น 0 ในช่วงที่ไม่มีการใช้งาน ในกรณีนี้ คุณอาจสังเกตเห็นว่าเวลาในการตอบสนองช้าลงเล็กน้อยในช่วงเวลาสั้นๆ ดูปัญหาที่ทราบ
ไฟล์ Manifest
Edge จะมองหา ไฟล์ Manifest ที่ชื่อ app.yaml ในไดเรกทอรี resources/hosted เพื่อรวบรวมข้อมูลรันไทม์สำหรับการสร้างและทำให้แอปพลิเคชันที่โฮสต์ใช้งานได้ ไฟล์นี้มีข้อมูลที่จำเป็นสำหรับการสร้างและทำให้แอปพลิเคชัน Hosted Targets ใช้งานได้
ไวยากรณ์ของไฟล์ Manifest
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
องค์ประกอบของไฟล์ Manifest
ไฟล์ Manifest app.yaml มีองค์ประกอบต่อไปนี้
- runtime - (บังคับ) ระบุประเภทแอปพลิเคชันที่คุณกำลังทำให้ใช้งานได้
คุณต้องระบุ
node - runtimeVersion - (ไม่บังคับ) เวอร์ชันของรันไทม์ที่ แอปพลิเคชันใช้ ค่าเริ่มต้น: Node.js LTS (v10.x) โปรดดูตัวเลือกอื่นๆ ในที่เก็บอย่างเป็นทางการของ Docker สำหรับ Node
- command - (ไม่บังคับ) ช่วยให้คุณระบุคำสั่งที่จะเรียกใช้แทนคำสั่งเริ่มต้นที่ใช้ในการเริ่มแอปพลิเคชัน ค่าเริ่มต้น:
Node.js=npm - args - (ไม่บังคับ) อาร์เรย์ของอาร์กิวเมนต์บรรทัดคำสั่งที่จะส่งไปยัง
แอปพลิเคชัน (ระบุในไวยากรณ์อาร์เรย์ YAML มาตรฐาน) โดยปกติแล้ว ระบบจะเพิ่มอาร์กิวเมนต์เหล่านี้ลงในคำสั่งเริ่มต้น
ค่าเริ่มต้นคือ start เช่น โดยค่าเริ่มต้น ระบบจะส่งคำสั่ง
npm startไปยังแอป Node.js - env - (ไม่บังคับ) อาร์เรย์ของตัวแปรสภาพแวดล้อม (คู่ชื่อ/ค่า) ที่จะตั้งค่าในสภาพแวดล้อมรันไทม์ของ Hosted Targets แอป Hosted Targets ที่ทำให้ใช้งานได้จะใช้ตัวแปรเหล่านี้ได้
- name - ชื่อตัวแปร
- value | valueRef - คุณมี 2 ตัวเลือก คุณสามารถตั้งค่าค่าลิเทอรัล
หรืออ้างอิงค่าที่เก็บไว้ในแมปค่าคีย์ แมปค่าคีย์ต้องมี
อยู่ในสภาพแวดล้อม Edge อยู่แล้ว ดูการทำงานกับแมปค่าคีย์
- หากใช้ value คุณต้อง
ระบุตัวแปร
nameและตามตัวอักษรvalueเช่นruntime: node env: - name: NODE_ENV value: production - หากใช้ valueRef คุณต้องระบุชื่อของแมปค่าคีย์ (KVM) ที่คุณสร้างไว้ก่อนหน้านี้ใน Edge และคีย์
เช่น
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- หากใช้ value คุณต้อง
ระบุตัวแปร
- apigeetool \- เครื่องมือบรรทัดคำสั่ง สำหรับทำให้พร็อกซี Edge ใช้งานได้
- get_token - เครื่องมือบรรทัดคำสั่งสำหรับรับโทเค็นการให้สิทธิ์ที่ apigeetool ต้องใช้
- ในเบราว์เซอร์ ให้ไปที่ https://github.com/apigee/api-platform-samples
- คลิก โคลนหรือดาวน์โหลด แล้วดึงที่เก็บลงในระบบในเครื่องโดยใช้ วิธีที่คุณต้องการ
- cd ไปที่ <ไดเรกทอรีการติดตั้งของคุณ>/api-platform-samples/doc-samples/hosted-targets
- เมื่อดาวน์โหลดที่เก็บแล้ว คุณสามารถ cd ไปที่ไดเรกทอรีตัวอย่างใดก็ได้และทำตาม วิธีการใน README เพื่อทำให้พร็อกซีตัวอย่างใช้งานได้ใน Edge คำสั่งทำให้ใช้งานได้จะแสดงอยู่ด้านล่าง เพียง แทนที่พารามิเตอร์ที่ระบุด้วยพารามิเตอร์สำหรับบัญชี Apigee ของคุณ
- เวลาในการตอบสนองของเครือข่าย - ตอนนี้แอปพลิเคชัน Node.js ไม่ได้ทำงาน ใน JVM ของ MP อีกต่อไป จึงมีการข้ามเครือข่ายระหว่าง MP กับการทำให้ใช้งานได้ แน่นอนว่าการดำเนินการนี้มีค่าใช้จ่าย แต่การวัดประสิทธิภาพเบื้องต้นแสดงให้เห็นว่าค่าใช้จ่ายอยู่ในระดับที่สมเหตุสมผล
- การตอบสนองของ API ช้า - โครงสร้างพื้นฐานที่เรียกใช้แอปพลิเคชัน ปรับขนาดโดยอัตโนมัติตามความจำเป็น ซึ่งหมายความว่าแอปพลิเคชันของคุณอาจปรับขนาดลงเป็น 0 อินสแตนซ์ และในกรณีนี้ คำขอ API ครั้งถัดไปจะใช้เวลานานกว่า คำขอ API ทั่วไปเล็กน้อย เนื่องจากโครงสร้างพื้นฐานกำลังเปิดอินสแตนซ์เพื่อประมวลผล คำขอ
- ข้อผิดพลาดในการทำให้ใช้งานได้ - หากได้รับข้อผิดพลาดในการทำให้ใช้งานได้เมื่อทำให้พร็อกซี Hosted Targets ใช้งานได้ ให้ลองทำให้พร็อกซีใช้งานได้อีกครั้ง ในบางกรณี การทำให้ใช้งานได้อาจหมดเวลา และหากคุณทำให้ใช้งานได้อีกครั้ง ปัญหาจะได้รับการแก้ไข
ไฟล์ Manifest ตัวอย่าง
ส่วนนี้มีไฟล์ Manifest ตัวอย่างสำหรับแอปพลิเคชัน Node.js
แอปพลิเคชัน คุณต้องมีไฟล์ Manifest เพื่อทำให้แอป Hosted Targets ใช้งานได้ และไฟล์ดังกล่าวต้องอยู่ใน
ไดเรกทอรี apiproxy/resources/hosted และชื่อไฟล์ต้องเป็น app.yaml
ต่อไปนี้คือไฟล์ app.yaml (Manifest) ตัวอย่างสำหรับแอป Node.js
ตัวอย่างที่ระบุตัวแปรสภาพแวดล้อมตามตัวอักษร
runtime: node
env:
- name: NODE_ENV
value: productionตัวอย่างที่มีคำสั่งเริ่มต้น อาร์กิวเมนต์บรรทัดคำสั่ง และตัวแปรสภาพแวดล้อม
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
ตัวอย่างที่ระบุการอ้างอิงแมปค่าคีย์ (KVM)
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้าถึง KVM ได้ที่ ไฟล์ Manifest
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
แอปพลิเคชัน Hosted Targets ตัวอย่างใน GitHub
Apigee มีพร็อกซีตัวอย่างใน GitHub พร้อมแอปพลิเคชัน Hosted Targets ที่เขียน ด้วย Node.js คุณสามารถโคลนที่เก็บนี้และทำตามวิธีการใน README เพื่อ ทำให้พร็อกซีใดก็ได้ใช้งานได้
ข้อกำหนดเบื้องต้น
หากต้องการทำให้ตัวอย่างใช้งานได้ คุณต้องติดตั้งเครื่องมือ 2 รายการในระบบ
หากต้องการทดสอบตัวอย่างในเครื่อง คุณต้องติดตั้ง Node.js ด้วย
การรับที่เก็บตัวอย่าง
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
ตัวอย่าง: การเรียกใช้แอปตัวอย่าง
โคลนที่เก็บตัวอย่าง
cd ~/myhomegit clone https://github.com/apigee/api-platform-samples.gitcd ~/myhome/api-platform-samples/doc-samples/hosted-targetscd node-hosted-hello
ทดสอบแอปพลิเคชันในเครื่อง
คุณต้องติดตั้ง Node.js เพื่อทำการทดสอบในเครื่องนี้
PORT=8081 node apiproxy/resources/hosted/index.jscurl http://localhost:8081
ตัวอย่างเอาต์พุต
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}ทำให้พร็อกซีใช้งานได้
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
ทดสอบการทำให้ใช้งานได้
การทำให้ใช้งานได้อาจใช้เวลา 2-3 นาที หากได้รับข้อผิดพลาดในการทำให้ใช้งานได้ ให้เรียกใช้ คำสั่งทำให้ใช้งานได้อีกครั้ง
curl http://myorg-test.apigee.net/node-hosted-hello
ตัวอย่างเอาต์พุต
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"