คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
บทแนะนำต่อไปนี้อธิบายวิธีทำให้แอปพลิเคชัน Node.js ใช้งานได้ใน Edge โดยใช้เป้าหมายที่โฮสต์ซึ่งเป็นสภาพแวดล้อมรันไทม์ของ Node.js ดั้งเดิมที่ฝากไว้โดย Apigee
บทแนะนำจะอธิบายงานต่อไปนี้
- การทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ Edge UI
- การทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์จากเครื่องพัฒนาซอฟต์แวร์ในเครื่อง
- การย้ายข้อมูลพร็อกซีที่มีอยู่ด้วยการติดตั้งใช้งานเป้าหมาย Edge Node.js ดั้งเดิมไปยังเป้าหมายที่โฮสต์
ทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ Edge UI
ในบทแนะนำนี้ คุณจะได้ทำให้แอป Node.js แบบง่ายๆ ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ Edge UI เมื่อดูบทแนะนำจนจบ คุณจะเข้าใจโครงสร้างพื้นฐานและเนื้อหาพื้นฐานของพร็อกซีเป้าหมายที่โฮสต์ รวมถึงวิธีเข้าถึงการทำให้ใช้งานได้และสร้างไฟล์บันทึก
ลงชื่อเข้าใช้
- ไปที่ apigee.com/edge
- ป้อนข้อมูลรับรองการเข้าสู่ระบบ Apigee ของคุณเพื่อลงชื่อเข้าใช้
สร้างพร็อกซีใหม่
- ในเมนูการนําทางด้านข้าง เลือกพัฒนา > พร็อกซี API
- คลิก + พร็อกซี
- ในหน้าสร้างพร็อกซี ให้เลือกเป้าหมายที่โฮสต์
- คลิกถัดไป
- ในช่องชื่อพร็อกซี ให้ป้อน
hello-hosted-targets
- โปรดตรวจสอบว่าได้เลือกตัวอย่าง" Hello World" แล้ว
- คลิกถัดไป
- ในหน้าความปลอดภัย ให้เลือกผ่าน (ไม่มี) สําหรับการให้สิทธิ์
- คลิกถัดไป
- คลิกถัดไป
- ในหน้าบิลด์ ให้ตรวจสอบว่าเลือกสภาพแวดล้อมทดสอบแล้ว โปรดสังเกตว่าประเภทพร็อกซีคือเป้าหมายที่โฮสต์
- คลิกสร้างและทำให้ใช้งานได้ การทำให้พร็อกซีใช้งานได้อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์
- หลังจากทำให้พร็อกซีใช้งานได้เรียบร้อยแล้ว ให้คลิกดูพร็อกซี hello-hosted-targets ที่ด้านล่างของหน้า
- เรียกใช้พร็อกซี API วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการไปที่แท็บติดตาม เริ่มเซสชันการติดตาม แล้วคลิกส่ง คุณควรได้รับสถานะ 200 พร้อมการตอบกลับดังต่อไปนี้
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
ตรวจสอบพร็อกซี
- ใน Edge UI ให้คลิกแท็บพัฒนา
- ใน Navigator ให้เลือกค่าเริ่มต้นในส่วนปลายทางเป้าหมาย
- ในตัวแก้ไขโค้ด ให้สังเกตว่ามีองค์ประกอบย่อย
<HostedTarget/>
ที่ว่างเปล่าใต้องค์ประกอบ<TargetEndpoint>
ต้องระบุแท็กว่างนี้ ซึ่งจะบอก Edge ว่าเป้าหมายของพร็อกซีคือแอปพลิเคชันที่มีการทำให้ใช้งานได้กับสภาพแวดล้อมเป้าหมายที่โฮสต์ - ใน Navigator ให้สังเกตเนื้อหาในส่วนสคริปต์ ไฟล์แอป Node.js จะแสดงอยู่ในป้ายกำกับที่โฮสต์ไว้
- ใน Edge UI ให้ตรวจสอบไฟล์ที่แสดงอยู่ในส่วนโฮสต์ในสคริปต์ ดังนี้
- ไฟล์ app.yaml มีข้อมูลการกำหนดค่า เช่น คุณอาจเพิ่มตัวแปรสภาพแวดล้อมที่จะพร้อมใช้งานสำหรับแอปพลิเคชัน Node.js ขณะรันไทม์ได้ สำหรับตัวอย่างนี้ คุณไม่จำเป็นต้องแก้ไขไฟล์
- ไฟล์ index.js คือไฟล์หลักของแอป Node.js
- หากแอปมีทรัพยากร Dependency ของโมดูล การอ้างอิงดังกล่าวจะต้องแสดงอยู่ใน package.json
ดูไฟล์บันทึก
ไฟล์บันทึกของแอปพลิเคชันอาจมีประโยชน์สำหรับการแก้ไขข้อบกพร่องที่เกิดขึ้นระหว่างระยะบิลด์และระหว่างรันไทม์
- ใน Edge UI ให้คลิกแท็บพัฒนา
- หากต้องการดูบันทึกของบิลด์ ให้คลิกบันทึกของบิลด์
- คลิกบันทึกรันไทม์เพื่อดูบันทึกการทำให้ใช้งานได้
โปรดดูเพิ่มเติมที่การเข้าถึงไฟล์บันทึก
สรุป
- คุณได้ทำให้แอปพลิเคชัน Node.js แบบง่ายๆ ใช้งานได้ในสภาพแวดล้อมเป้าหมายที่โฮสต์ และทดสอบใน Edge UI
- คุณได้ทราบว่าพร็อกซีเป้าหมายที่โฮสต์ต้องใช้แท็กว่างพิเศษในปลายทางเป้าหมายที่ชื่อว่า
<HostedTarget/>
- คุณทราบว่า Edge โหลดทรัพยากร Dependency ของโมดูลให้คุณโดยอัตโนมัติ และต้องระบุการอ้างอิงดังกล่าวในไฟล์
package.json
- และคุณยังได้รู้วิธีตรวจสอบไฟล์บันทึกบิวด์และรันไทม์ด้วย
ทำให้ Node.js จากระบบของคุณใช้งานได้ใน Edge
ส่วนนี้จะอธิบายวิธีทำให้แอปพลิเคชัน Node.js แบบสแตนด์อโลนใช้งานได้จากระบบภายในของคุณกับเป้าหมายที่โฮสต์โดยใช้ apigeetool ยูทิลิตี apigeetool
จะรวมแอป Node.js เข้ากับพร็อกซีเป้าหมายที่โฮสต์ใหม่ และทำให้ใช้งานได้กับ Edge
ติดตั้ง Apigeetool
ขอแนะนำให้นักพัฒนาซอฟต์แวร์นำโค้ดพร็อกซีไปใช้ใน Edge โดยใช้ apigeetool หากต้องการติดตั้ง apigeetool ให้เรียกใช้คำสั่ง NPM ต่อไปนี้
npm install -g apigeetool
สร้างแอป Node.js
เพื่ออำนวยความสะดวก เราจึงเตรียมโค้ดสำหรับแอป Node.js ง่ายๆ ไว้ให้คุณ
- สร้างไดเรกทอรีสำหรับแอป Node.js โดยเรียกไดเรกทอรี node-hosted-express
- cd ไปยังไดเรกทอรีใหม่
- สร้างไฟล์ชื่อ index.js และคัดลอกโค้ดนี้ไปยังไฟล์
- สร้างไฟล์ชื่อ package.json และคัดลอกโค้ดนี้ไปใส่ โปรดสังเกตว่าโมดูล Express จะแสดงเป็นทรัพยากร Dependency
- สร้างไฟล์ชื่อ app.yaml และคัดลอกโค้ดต่อไปนี้ลงในไฟล์
- ตรวจสอบว่าไดเรกทอรีมีลักษณะเช่นนี้
ls app.yaml index.js package.json
var express = require('express') var app = express() app.get('/', function(req, res) { res.json({ hello: "Hello World!" }) }) app.get('/hello/:name', function(req, res) { var name = req.params.name res.json({ hello: "hello " + name }) }) var server = app.listen(process.env.PORT || 9000, function() { console.log('Listening on port %d', server.address().port) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
ตรวจสอบโครงสร้างไดเรกทอรีที่จำเป็นสำหรับโค้ดของแอป
แอป Node.js ต้องมีโครงสร้างเดียวกันกับแอป Node.js มาตรฐาน แต่โปรดตรวจสอบว่าคุณได้ปฏิบัติตามข้อกำหนดเหล่านี้ก่อนที่จะทำให้ใช้งานได้กับ apigeetool
ไปยัง Edge
- ต้องมีไฟล์ Manifest app.yaml และต้องอยู่ในไดเรกทอรีรากของแอป ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์นี้ได้ที่ไฟล์ Manifest
- ต้องมีไฟล์ package.json โดยจะต้องระบุทรัพยากร Dependency ที่แอปต้องการ
- ไม่ ต้องมีโฟลเดอร์ node_modules Edge จะเรียกใช้ npm install ให้คุณเมื่อมีการทำให้แอป Node.js ใช้งานได้ โดยรับทรัพยากร Dependency จาก package.json เวลาเดียวที่คุณต้องระบุ node_modules อย่างชัดเจนคือเมื่อคุณมีโมดูลที่กำหนดเองซึ่งไม่พร้อมใช้งานจนถึง npm
การทำให้พร็อกซีใช้งานได้
- ในเทอร์มินัล ให้ cd ไปยังไดเรกทอรีรากของแอปพลิเคชัน Node.js
- เรียกใช้ apigeetool ด้วยคำสั่ง deployhostedtarget
apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username
โดยที่ -n คือชื่อที่ต้องการตั้งให้กับพร็อกซีใหม่ ต้องไม่ซ้ำกันในองค์กร จำกัดอักขระที่คุณอนุญาตให้ใช้ในชื่อดังต่อไปนี้ a-z0-9._\-$%
เช่น
apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ apigeetool ได้ที่ https://github.com/apigee/apigeetool-node
กำลังทดสอบพร็อกซี
คุณทดสอบพร็อกซีด้วยคำสั่ง cURL กับไคลเอ็นต์ REST เช่น Postman หรือใน Edge UI ในเครื่องมือติดตามได้ ต่อไปนี้คือตัวอย่างคำสั่ง cURL
curl http://myorg-test.apigee.net/node-hosted-express {"date":1506992197427,"msg":"hello-world"}
การรับบันทึกบิลด์
บันทึกของบิลด์จะแสดงเอาต์พุตที่เกี่ยวข้องกับการทำให้ใช้งานได้และการสร้างแอป Node.js โปรดดูไฟล์บันทึกเพิ่มเติม
apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name
เช่น
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express
การรับบันทึกรันไทม์
บันทึกรันไทม์จะแสดงเอาต์พุตที่เกี่ยวข้องกับแอปที่กำลังทำงานอยู่ บันทึกรันไทม์จะกำหนดขอบเขตอยู่ที่สภาพแวดล้อมและบันทึกการแสดงผลสำหรับการแก้ไขพร็อกซีที่ทำให้ใช้งานได้ในปัจจุบัน โปรดดูไฟล์บันทึกเพิ่มเติม
apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name
เช่น
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express
การดูพร็อกซีใน UI ของ Edge
หลังจากทำให้ใช้งานได้เรียบร้อยแล้ว คุณจะดูและแก้ไขพร็อกซีได้ในส่วนพร็อกซี API ของ Edge UI
การย้ายพร็อกซี Node.js ที่มีอยู่ไปยังพร็อกซีเป้าหมายที่โฮสต์
หัวข้อนี้จะอธิบายวิธีย้ายข้อมูลพร็อกซี Edge API ที่มีอยู่ซึ่งใช้การติดตั้งใช้งานเป้าหมาย Node.js ดั้งเดิมด้วยตนเองไปยังเป้าหมายที่โฮสต์ นอกจากนี้ยังอธิบายวิธีทำให้พร็อกซีใช้งานได้หลังจากที่ทำตามขั้นตอนการย้ายข้อมูลแล้ว
ขั้นตอนการย้ายข้อมูลจะเก็บโครงสร้างพร็อกซี API, นโยบาย, โฟลว์ และองค์ประกอบการกำหนดค่าอื่นๆ ไว้ โดยคุณจะดำเนินการย้ายข้อมูลได้ใน4 ขั้นตอนตามที่ระบุไว้ด้านล่าง จากนั้นจึงทำให้พร็อกซีที่ย้ายข้อมูลใช้งานได้ด้วย apigeetool
ขั้นตอนที่ 1: ปรับโครงสร้างไฟล์พร็อกซี
หากต้องการปรับโครงสร้างไฟล์ พร็อกซี API ต้องอยู่ในระบบไฟล์ในเครื่อง หากทำให้พร็อกซีใช้งานได้ใน Edge คุณต้องดาวน์โหลดพร็อกซีก่อนดำเนินการต่อ ในการกำหนดค่าแบบเดิม และ "แพ็กเกจ" พร็อกซี Edge ที่มีโค้ด Node.js จะมีโครงสร้างไฟล์นี้
โค้ดแอปพลิเคชัน Node.js จะวางไว้ในไดเรกทอรี resources/node
ดังนี้
apiproxy/ policies/ proxies/ targets/ resources/ node/ Your application code
สำหรับเป้าหมายที่โฮสต์ คุณต้องวางไดเรกทอรีรากของแอป Node.js ไว้ในไดเรกทอรีที่ชื่อ resources/hosted
เพียงสร้างไดเรกทอรีใหม่ชื่อ resources/hosted และย้ายเนื้อหาของ resources/node
ไปยังไดเรกทอรีดังกล่าว จากนั้นให้ลบไดเรกทอรี resources/node
apiproxy/ policies/ proxies/ targets/ resources/ hosted/ Your application code
ขั้นตอนที่ 2: เพิ่มไฟล์ Manifest
สร้างไฟล์ Manifest ชื่อ app.yaml
แล้ววางไว้ในไดเรกทอรี apiproxy/resources/hosted
ต่อไปนี้เป็นตัวอย่างไฟล์ app.yaml
โดยระบุว่ารันไทม์คือ Node.js (จำเป็น) นอกจากนี้ยังสร้างตัวแปรสภาพแวดล้อมในสภาพแวดล้อมการดำเนินการ (ตัวแปรที่แอป Node.js เข้าถึงได้) ตัวแปรสภาพแวดล้อมเป็นตัวเลือกที่ไม่บังคับและจะแสดงที่นี่เป็นตัวอย่างเท่านั้น โปรดดูรายละเอียดและตัวอย่างเพิ่มเติมที่หัวข้อไฟล์ Manifest
runtime: node env: - name: NODE_ENV value: production
ตัวอย่างต่อไปนี้แสดงโครงสร้างโปรเจ็กต์ Node.js ที่อยู่ในตำแหน่งที่ถูกต้องในพร็อกซีสำหรับการทำให้เป้าหมายที่โฮสต์ใช้งานได้
apiproxy/ resources/ hosted/ index.js node_modules/ app.yaml package.json
ขั้นตอนที่ 3: ตรวจสอบว่าคุณมีไฟล์ package.json
ในพร็อกซี Edge Node.js ดั้งเดิมจะมี package.json
หรือไม่ก็ได้ แต่สำหรับเป้าหมายที่โฮสต์ คุณจะต้องระบุไว้ในไดเรกทอรี apiproxy/resources/hosted
อย่าลืมระบุทรัพยากร Dependency ที่จำเป็นสำหรับแอปในไฟล์นี้
ขั้นตอนที่ 4: แก้ไขปลายทางเป้าหมายของพร็อกซี
พร็อกซี Node.js ดั้งเดิมต้องมีแท็กชื่อ <ScriptTarget>
ในไฟล์ปลายทางเป้าหมาย (โดยทั่วไปคือ /apiproxy/targets/default.xml
)
สำหรับเป้าหมายที่โฮสต์ คุณจะต้องเพิ่มแท็กว่างที่ชื่อ <HostedTarget/>
หากมีแท็ก ScriptTarget
ในไฟล์ ให้นำออก
เช่น
<?xml version="1.0" encoding="UTF-8"?> <TargetEndpoint name="default"> <Description /> <FaultRules /> <PreFlow name="PreFlow"> <Request /> <Response /> </PreFlow> <PostFlow name="PostFlow"> <Request /> <Response /> </PostFlow> <Flows /> <HostedTarget /> </TargetEndpoint>
การทำให้พร็อกซีใช้งานได้
ตอนนี้คุณทำให้พร็อกซีใช้งานได้โดยใช้คำสั่ง apigeetool deployproxy
แล้ว
- cd ในไดเรกทอรีรากของพร็อกซี: /apiproxy
- ใช้คำสั่งนี้เพื่อทำให้พร็อกซีใช้งานได้
apigeetool deployproxy -u username -o org -e env -n proxy-name -d .
เช่น
apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ apigeetool
ได้ที่ https://github.com/apigee/apigeetool-node/blob/master/README.md
กำลังทดสอบพร็อกซี
คุณทดสอบพร็อกซีด้วยคำสั่ง cURL กับไคลเอ็นต์ REST เช่น Postman หรือใน Edge UI ในเครื่องมือติดตามได้ ตัวอย่างคำสั่ง cURL มีดังนี้
curl http://myorg-test.apigee.net/hello-world Hello,World!