คุณกำลังดูเอกสารประกอบสำหรับ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
บทแนะนำต่อไปนี้อธิบายวิธีทำให้แอปพลิเคชัน Node.js ใช้งานได้ใน Edge โดยใช้ เป้าหมายที่โฮสต์ ซึ่งเป็นสภาพแวดล้อมรันไทม์ Node.js ดั้งเดิมที่โฮสต์โดย Apigee
บทแนะนำจะอธิบายการทำงานต่อไปนี้
- การทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ Edge UI
- การปรับใช้แอป Node.js กับเป้าหมายที่โฮสต์จากเครื่องสำหรับพัฒนาซอฟต์แวร์
- การย้ายข้อมูลพร็อกซีที่มีอยู่ด้วยการติดตั้งใช้งานเป้าหมาย Edge Node.js ดั้งเดิมไปยังเป้าหมายที่โฮสต์
ทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ UI ของ Edge
ในบทแนะนำนี้ คุณจะทําให้แอป Node.js ง่ายๆ ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ UI ของ Edge เมื่อทําตามบทแนะนําจนเสร็จสิ้น คุณจะเข้าใจโครงสร้างและเนื้อหาพื้นฐานของพร็อกซีเป้าหมายที่โฮสต์ รวมถึงวิธีเข้าถึงการนําไปใช้งานและสร้างไฟล์บันทึก
ลงชื่อเข้าใช้
- ไปที่ apigee.com/edge
- ป้อนข้อมูลเข้าสู่ระบบ Apigee เพื่อลงชื่อเข้าใช้
สร้างพร็อกซีใหม่
- ในเมนูการนําทางด้านข้าง ให้เลือกพัฒนา > พร็อกซี API
- คลิก + พร็อกซี
- ในหน้าสร้างพร็อกซี ให้เลือกเป้าหมายที่โฮสต์
- คลิกถัดไป
- ป้อน
hello-hosted-targets
ในช่องชื่อพร็อกซี - ตรวจสอบว่าได้เลือกตัวอย่าง "สวัสดีโลก" แล้ว
- คลิกถัดไป
- ในหน้าความปลอดภัย ให้เลือกส่งผ่าน (ไม่มี) สำหรับการให้สิทธิ์
- คลิกถัดไป
- คลิกถัดไป
- ในหน้าสร้าง โปรดตรวจสอบว่าได้เลือกสภาพแวดล้อมทดสอบ โปรดสังเกตว่าประเภทพร็อกซีคือเป้าหมายที่โฮสต์
- คลิกสร้างและทำให้ใช้งานได้ การทำให้พร็อกซีใช้งานได้อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์
- หลังจากทำให้พร็อกซีใช้งานได้เรียบร้อยแล้ว ให้คลิกดูพร็อกซี Hello-hosted-targets ที่ด้านล่างของหน้า
- เรียกใช้พร็อกซี API วิธีที่ง่ายที่สุดคือไปที่แท็บการติดตาม เริ่มเซสชันการติดตาม แล้วคลิกส่ง คุณควรได้รับสถานะ 200 พร้อมคําตอบต่อไปนี้
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
ตรวจสอบพร็อกซี
- ใน Edge UI ให้คลิกแท็บพัฒนา
- ใน Navigator ให้เลือกค่าเริ่มต้นในส่วนปลายทางเป้าหมาย
- ในเครื่องมือแก้ไขโค้ด ให้สังเกตว่ามีองค์ประกอบย่อย
<HostedTarget/>
ว่างอยู่ใต้องค์ประกอบ<TargetEndpoint>
ต้องระบุแท็กว่างนี้ ซึ่งจะบอก Edge ว่าเป้าหมายของพร็อกซีคือแอปพลิเคชันที่ติดตั้งใช้งานในสภาพแวดล้อมเป้าหมายที่โฮสต์ - ในแถบนำทาง คุณจะเห็นเนื้อหาในส่วนสคริปต์ ไฟล์แอป Node.js จะแสดงอยู่ในป้ายกํากับโฮสต์
- ใน UI ของ Edge ให้ตรวจสอบไฟล์ที่แสดงในส่วนโฮสต์ในสคริปต์
- ไฟล์ app.yaml มีข้อมูลการกําหนดค่า เช่น คุณสามารถเพิ่มตัวแปรสภาพแวดล้อมที่จะพร้อมใช้งานสําหรับแอปพลิเคชัน Node.js ขณะรันไทม์ คุณไม่จำเป็นต้องแก้ไขไฟล์นี้สำหรับตัวอย่างนี้
- ไฟล์ index.js เป็นไฟล์หลักของแอป Node.js
- หากแอปของคุณมีทรัพยากร Dependency ของโมดูล โมดูลดังกล่าวต้องแสดงใน package.json
ดูไฟล์บันทึก
ไฟล์บันทึกของแอปพลิเคชันอาจเป็นประโยชน์ในการแก้ไขข้อบกพร่องที่เกิดขึ้นระหว่างระยะการสร้างและระหว่างรันไทม์
- ใน UI ของ Edge ให้คลิกแท็บพัฒนา
- หากต้องการดูบันทึกการสร้าง ให้คลิกบันทึกการสร้าง
- หากต้องการดูบันทึกการทำให้ใช้งานได้ ให้คลิกบันทึกรันไทม์
โปรดดูข้อมูลเพิ่มเติมที่การเข้าถึงไฟล์บันทึก
สรุป
- คุณได้ทำให้แอปพลิเคชัน Node.js แบบง่ายใช้งานได้ในสภาพแวดล้อมเป้าหมายที่โฮสต์และทดสอบใน UI ของ Edge
- คุณได้ทราบว่าพร็อกซีเป้าหมายที่โฮสต์ต้องใช้แท็กว่างแบบพิเศษในปลายทางเป้าหมายที่เรียกว่า
<HostedTarget/>
- คุณได้ทราบว่า Edge โหลดทรัพยากร Dependency ของโมดูลให้คุณโดยอัตโนมัติ ซึ่งทรัพยากร Dependency นั้นต้องอยู่ในไฟล์
package.json
- และคุณยังได้เรียนรู้วิธีตรวจสอบไฟล์บันทึกของบิลด์และรันไทม์ด้วย
ทำให้ Node.js ใช้งานได้จากระบบของคุณไปยัง Edge
ส่วนนี้จะอธิบายวิธีทำให้แอปพลิเคชัน Node.js แบบสแตนด์อโลนจากระบบในเครื่องใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ apigeetool ยูทิลิตี apigeetool
จะรวมแอป Node.js ไว้ในพร็อกซีเป้าหมายที่โฮสต์ใหม่และทำให้ใช้งานได้กับ Edge
ติดตั้ง apigeetool
การใช้ apigeetool เป็นวิธีที่นักพัฒนาซอฟต์แวร์แนะนำในการติดตั้งใช้งานโค้ดพร็อกซีใน Edge หากต้องการติดตั้ง 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 ใช้งานได้ โดยจะดึงข้อมูลการพึ่งพาจาก 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
การดูพร็อกซีใน Edge UI
หลังจากติดตั้งใช้งานสำเร็จแล้ว คุณจะดูและแก้ไขพร็อกซีในส่วนพร็อกซี 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: ตรวจสอบว่าคุณมีไฟล์แพ็กเกจ.json
ในพร็อกซี Node.js ของ Edge แบบดั้งเดิม 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 หรือใน UI ของ Edge ในเครื่องมือการติดตาม ตัวอย่างคำสั่ง cURL
curl http://myorg-test.apigee.net/hello-world Hello,World!