คุณกำลังดูเอกสารประกอบของ 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 the แอปพลิเคชัน 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 ได้ ดูรายละเอียดได้ที่ การกำหนดค่า 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 ระดับบนสุดมีข้อมูลการขึ้นต่อกันก่อนที่จะทำให้ใช้งานได้ หากมีการขึ้นต่อกันระยะไกลที่ไม่ได้ รวมอยู่ใน node_modules แอปพลิเคชัน Node.js จะไม่ทำงานใน Edge
คุณสามารถดึงข้อมูลการขึ้นต่อกันทั้งหมดลงในระบบไฟล์ได้อย่างง่ายดายโดยใช้ยูทิลิตี npm ดังนี้
- เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีฐานของแอปพลิเคชัน Node.js
$ npm install
หรือ
$ npm update
เมื่อติดตั้งข้อมูลการขึ้นต่อกันแล้ว คุณก็พร้อมที่จะทำให้พร็อกซีใช้งานได้ใน 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