คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
บทนำ
หัวข้อนี้จะอธิบายวิธีเพิ่มแอปพลิเคชัน Node.js ไปยังพร็อกซีที่มีอยู่ในระบบไฟล์ในเครื่องและวิธีทำให้พร็อกซีใช้งานได้กับ Apigee Edge
การเตรียมความพร้อมสภาพแวดล้อมในการพัฒนา
ในหัวข้อนี้ เราจะสมมติว่าคุณได้ตั้งค่าสภาพแวดล้อมการพัฒนาพร็อกซีในระบบในเครื่องของคุณแล้ว และคุณต้องการผสานรวมแอปพลิเคชัน Node.js เข้ากับระบบดังกล่าว
โครงสร้างพื้นฐานของแอปพลิเคชันพร็อกซีที่มีแอป Node.js จะเป็นไปตามรูปแบบที่แสดงในรูปภาพด้านล่าง โดยมีโฟลเดอร์ /apiproxy หลักและโฟลเดอร์ย่อยสําหรับทรัพยากร เป้าหมาย และพร็อกซี โฟลเดอร์ 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://
นำหน้าเสมอ followed ตามด้วยชื่อสคริปต์ Node.js หลัก และตามที่ได้กล่าวไว้ก่อนหน้านี้ ทรัพยากร Node.js ต้องอยู่ใน /apiproxy/resources/node
ที่ขอบเขตพร็อกซี API
คุณสามารถตั้งค่าพารามิเตอร์เพิ่มเติมได้ใน ScriptTarget โปรดดูรายละเอียดที่หัวข้อ การกําหนดค่า 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
และการกำหนดค่าปลายทางทั้ง 2 รายการมีชื่อว่า 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 ระดับบนสุดมีข้อมูลเกี่ยวกับสิ่งที่ต้องพึ่งพาก่อนที่คุณจะนำไปใช้ หากมีทรัพยากรภายนอกที่ไม่ได้รวมอยู่ใน node_modules แอปพลิเคชัน Node.js จะไม่ทำงานใน Edge
คุณเรียกข้อมูล Dependency ทั้งหมดลงในระบบไฟล์ได้ง่ายๆ โดยใช้ยูทิลิตี npm โดยทำดังนี้
- จากไดเรกทอรีฐานของแอปพลิเคชัน Node.js ให้เรียกใช้คำสั่งต่อไปนี้
$ npm install
หรือ
$ npm update
เมื่อติดตั้งทรัพยากร Dependency แล้ว คุณก็พร้อมที่จะทำให้พร็อกซีใช้งานได้ใน Edge
ทำให้แอป Node.js ใช้งานได้ใน Apigee Edge
ก่อนทำให้ใช้งานได้ คุณจะต้องทราบชื่อองค์กร ชื่อผู้ใช้ และรหัสผ่านสำหรับบัญชี Apigee Edge คุณต้องใช้ข้อมูลนี้เพื่อสร้างคำสั่งเครื่องมือการทำให้ใช้งานได้อย่างถูกต้อง
คำสั่งมีดังนี้ โดยจะถือว่า (ด้วย Flag -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