คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
เกริ่นนำ
หัวข้อนี้จะอธิบายวิธีเพิ่มแอปพลิเคชัน Node.js ไปยังพร็อกซีที่มีอยู่ในระบบไฟล์ในเครื่องและวิธีทำให้พร็อกซีใช้งานได้กับ Apigee Edge
การเตรียมความพร้อมสภาพแวดล้อมในการพัฒนา
ในหัวข้อนี้ เราถือว่าคุณได้ตั้งค่าสภาพแวดล้อมการพัฒนาพร็อกซีในระบบภายในแล้ว และคุณต้องการผสานรวมแอปพลิเคชัน Node.js เข้ากับระบบดังกล่าว
โครงสร้างพื้นฐานของแอปพลิเคชันพร็อกซีที่มีแอป Node.js จะเป็นไปตามรูปแบบที่แสดงในภาพด้านล่าง โดยมีโฟลเดอร์ /apiproxy พื้นฐานและโฟลเดอร์ย่อยสำหรับ resources, targets และ พร็อกซี โฟลเดอร์ apiproxy/resources/node เป็นที่ที่ต้องเก็บไฟล์ Node.js ส่วนโฟลเดอร์อื่นๆ จะมีไฟล์ XML ที่กำหนดพร็อกซีและปลายทางเป้าหมาย โฟลว์พร็อกซี โฟลว์แบบมีเงื่อนไข และอื่นๆ หากต้องการคำอธิบายที่สมบูรณ์ยิ่งขึ้นเกี่ยวกับโครงสร้างพร็อกซี API โปรดดูข้อมูลอ้างอิงการกำหนดค่าพร็อกซี API
อย่าลืมว่าโค้ด Node.js ที่เป็นส่วนหนึ่งของพร็อกซีต้องวางไว้ในส่วน /apiproxy/resources/node ซึ่งเป็นส่วนที่ Edge คาดหวังว่าจะพบเมื่อทำให้ใช้งานได้แล้ว
ระบุเป้าหมาย Node.js ด้วย ScriptTarget
คีย์ในการผสานรวม Node.js ในพร็อกซีคือการระบุองค์ประกอบ <ScriptTarget> ในไฟล์ XML ของปลายทางเป้าหมาย ในโครงสร้างไฟล์พร็อกซี ไฟล์ XML นี้จะอยู่ใน apiproxy/targets ชื่อไฟล์คือ default.xml
เพื่อเป็นบริบท ให้พิจารณาว่าปลายทางเป้าหมายมักจะชี้ไปยังบริการแบ็กเอนด์บางประเภท ในกรณีนี้ เรามีบริการจำลองเป้าหมายของ Apigee คำจำกัดความของปลายทางเป้าหมายมีลักษณะดังนี้
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
องค์ประกอบ <HTTPTargetConnection> จะระบุ URL ของบริการแบ็กเอนด์ ซึ่งเป็นบริการเป้าหมายจำลองของ Apigee
แต่ในกรณีของ Node.js แอปพลิเคชัน Node.js ตัวมันเอง จะเป็น เป้าหมาย คุณระบุด้วย <ScriptTarget> ในไฟล์ apiproxy/targets/default.xml
แทนที่จะเป้าหมายที่ใช้องค์ประกอบ <HTTPTargetConnection> เพื่อระบุ URL ของบริการแบ็กเอนด์ ระบบจะอ้างอิงแอปพลิเคชัน Node.js โดยตรงโดยใช้องค์ประกอบ <ScriptTarget> ดังตัวอย่างต่อไปนี้
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
พารามิเตอร์ <ResourceURL> ต้องนำหน้าด้วย node://
เสมอ ตามด้วยชื่อของสคริปต์ Node.js หลัก และตามที่ได้กล่าวไว้ก่อนหน้านี้ ทรัพยากร Node.js ต้องอยู่ใน /apiproxy/resources/node
ในขอบเขตพร็อกซี API
คุณตั้งค่าพารามิเตอร์เพิ่มเติมใน ScriptTarget ได้ โปรดดูรายละเอียดที่ การกำหนดค่า Advanced ScriptTarget
สำหรับวัตถุประสงค์ของตัวอย่างนี้ โปรดดูซอร์สโค้ดของไฟล์ Node.js หลักที่เรียกว่า server.js ซึ่งเป็นเซิร์ฟเวอร์ HTTP พื้นฐานที่ส่งคืน " Hello World!" เมื่อได้รับคำขอ
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
โดยสรุปแล้ว สมมติว่ามีการติดตั้งใช้งานแอปพลิเคชัน Node.js หลักในไฟล์ชื่อ server.js
และการกำหนดค่าปลายทางมีชื่อเป็น default.xml
พร็อกซี API ที่มีสคริปต์ Node.js จะมีโครงสร้างต่อไปนี้
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
เตรียมการทำให้แอปพลิเคชันใช้งานได้
แอป Node.js ส่วนใหญ่จะมีไฟล์ Dependency และมีไฟล์ package.json ไว้ในไดเรกทอรีพื้นฐาน ในกรณีนี้ แนวทางปฏิบัติแนะนำคือการเรียกใช้ยูทิลิตี npm เพื่อให้มีการเติมข้อมูลไดเรกทอรี node_modules ระดับบนสุดด้วยการอ้างอิงก่อนที่คุณจะทำให้ใช้งานได้ หากมีทรัพยากร Dependency ระยะไกลที่ไม่รวมอยู่ใน node_modules แอปพลิเคชัน Node.js ของคุณจะไม่ทำงานบน Edge
คุณสามารถเรียกข้อมูลทรัพยากร Dependency ทั้งหมดไปยังระบบไฟล์ได้ง่ายๆ โดยใช้ยูทิลิตี npm ดังนี้
- จากไดเรกทอรีฐานของแอปพลิเคชัน Node.js ให้เรียกใช้คำสั่งต่อไปนี้
$ npm install
หรือ
$ npm update
เมื่อติดตั้งทรัพยากร Dependency แล้ว คุณก็พร้อมที่จะทําให้พร็อกซีใช้งานได้กับ Edge
ทำให้แอป Node.js ใช้งานได้ใน Apigee Edge
ก่อนที่จะทำให้ใช้งานได้ คุณจะต้องทราบชื่อองค์กร ชื่อผู้ใช้ และรหัสผ่านสำหรับบัญชี Apigee Edge ของคุณ คุณต้องมีข้อมูลนี้เพื่อสร้างคำสั่งเครื่องมือการทำให้ใช้งานได้อย่างถูกต้อง
นี่คือคำสั่ง โดยสมมติว่า (โดยมีแฟล็ก -d) อยู่ในไดเรกทอรีรากของพร็อกซี หากพร็อกซีชื่อ foo ให้ป้อนคำสั่งนี้จากไดเรกทอรี foo
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .ดูข้อมูลเกี่ยวกับความหมายของแฟล็กคำสั่งแต่ละรายการได้ที่
$ apigeetool deployproxy -h
หากต้องการดูข้อมูลสรุปสั้นๆ ให้ทำดังนี้
- -n แฟล็กนี้ให้คุณระบุชื่อของพร็อกซีที่จะสร้างเมื่อมีการทำให้แอปใช้งานได้ คุณจะเห็นชื่อนี้ใน UI การจัดการ
- -d ระบุไดเรกทอรีรากของพร็อกซี API
- -o, -e, -u และ -p จะระบุชื่อองค์กร สภาพแวดล้อมการทำให้ใช้งานได้ ชื่อผู้ใช้ และรหัสผ่าน
ทดสอบพร็อกซี API ใหม่
คุณเพิ่งเพิ่มแอป Node.js ลงในพร็อกซี API ที่มีอยู่และทำให้พร็อกซีใช้งานได้กับ Apigee Edge หากต้องการทดสอบ ให้เรียกใช้คำสั่ง cURL นี้ เราถือว่ามีการใช้เส้นทางฐานเริ่มต้น (/) แล้ว (มีการระบุเส้นทางฐานในไฟล์การกำหนดค่าปลายทางของพร็อกซี) อย่าลืมแทนที่ชื่อองค์กรสำหรับ org_name หากไม่ได้ติดตั้ง cURL ไว้ คุณสามารถป้อน URL ในเบราว์เซอร์
$ curl http://org_name-test.apigee.net/
Hello, Node!
ดูพร็อกซีใหม่ใน UI การจัดการ
เข้าสู่ระบบบัญชี Apigee Edge แล้วไปที่หน้าพร็อกซี API คุณจะเห็นพร็อกซีที่ชื่อ "hellonode" อยู่ในรายการ
คลิกที่ "hellonode" เพื่อดูรายละเอียดเกี่ยวกับพร็อกซี ในมุมมองการพัฒนา คุณจะเห็นซอร์สโค้ดที่อัปโหลด เพิ่มนโยบาย แก้ไขโฟลว์ และอื่นๆ
ขั้นตอนถัดไป
หากต้องการข้อมูลเกี่ยวกับการแก้ไขข้อบกพร่องของแอปพลิเคชัน Node.js ที่ทำงานบน Apigee Edge โปรดดูการแก้ไขข้อบกพร่องและการแก้ปัญหาพร็อกซีของ Node.js