คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ยกเลิกการทำให้พร็อกซี Hosted Targets ใช้งานได้
เมื่อคุณยกเลิกการทำให้พร็อกซี Edge ที่มีแอปพลิเคชัน Hosted Targets ใช้งานได้ ระบบจะยกเลิกการทำให้แอป Hosted Targets ที่เกี่ยวข้อง ใช้งานไม่ได้ แต่จะไม่ลบรูปภาพแอปพลิเคชันพื้นฐาน หากคุณ ทำให้พร็อกซีใช้งานได้อีกครั้ง ระบบก็จะทำให้แอป Hosted Targets ใช้งานได้อีกครั้ง
การลบพร็อกซี Hosted Targets
หลังจากลบพร็อกซี Hosted Targets แล้ว อินสแตนซ์รันไทม์พื้นฐานจะหยุดทำงาน ภายในระยะเวลาหนึ่ง อย่างไรก็ตาม โค้ดของแอปพลิเคชันจะยังคงอยู่
การเข้าถึงไฟล์บันทึก
ไฟล์บันทึกมีประโยชน์สำหรับการแก้ไขข้อบกพร่องและการแก้ปัญหา คุณดูไฟล์บันทึกได้ 2 ประเภทสำหรับ การทำให้ Hosted Targets ใช้งานได้
- บันทึกการสร้าง - แสดงเอาต์พุตที่เกี่ยวข้องกับการทำให้แอป Hosted Targets ใช้งานได้และการสร้างแอป
- บันทึกรันไทม์ - แสดงเอาต์พุตที่เกี่ยวข้องกับแอป Hosted Targets ที่ทำงานอยู่ บันทึกรันไทม์ มีขอบเขตเป็นสภาพแวดล้อมและแสดงข้อมูลบันทึกสำหรับการแก้ไขพร็อกซีที่ทำให้ใช้งานได้ในปัจจุบัน
การเข้าถึงบันทึกจาก UI ของ Edge
- ไปที่: apigee.com/edge
- ป้อนข้อมูลเข้าสู่ระบบ แล้วคลิกลงชื่อเข้าใช้
- เลือกพัฒนา > พร็อกซี API ในเมนูการนำทางด้านข้าง
- เลือกพร็อกซีที่ต้องการดูบันทึก
- คลิกแท็บพัฒนา
- หากต้องการดูบันทึกการสร้าง ให้คลิกบันทึกการสร้าง
- หากต้องการดูบันทึกรันไทม์ ให้คลิกบันทึกรันไทม์
การเข้าถึงบันทึกด้วย API
นอกจากนี้ คุณยังใช้ Edge API เพื่อดึงบันทึก Hosted Targets ได้ด้วย ดูรายละเอียดได้ที่ หัวข้อรับบันทึก Node.js ที่แคชไว้
การใช้ที่เก็บ npm ส่วนตัว
ส่วนนี้จะอธิบายวิธีทำให้พร็อกซี Node.js ใช้งานได้กับ Hosted Targets ในกรณีที่คุณ ใช้ ที่เก็บ NPM ส่วนตัว ใน สภาพแวดล้อมในการพัฒนาซอฟต์แวร์
สิ่งที่จำเป็นต้องทราบเกี่ยวกับการใช้ที่เก็บส่วนตัว
เมื่อคุณทำให้แอป Node.js ใช้งานได้กับ Edge ระบบจะนำเข้าทรัพยากร Dependency ทั้งหมดของโปรเจ็กต์โดยอัตโนมัติ
ซึ่งเป็นส่วนหนึ่งของกระบวนการทำให้ใช้งานได้
โดยพื้นฐานแล้ว Hosted Targets จะเรียกใช้ npm install ในโค้ดของคุณเมื่อทำให้ใช้งานได้
อย่างไรก็ตาม หากคุณใช้ที่เก็บ NPM ส่วนตัวในสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ระบบจะไม่สามารถแก้ปัญหาทรัพยากร Dependency ส่วนตัวในระบบคลาวด์ได้ ใน
กรณีนี้ วิธีแก้ปัญหาคือใช้ตัวเลือก --bundled-dependencies เมื่อใช้ยูทิลิตีการทำให้ใช้งานได้
apigeetool ดูเพิ่มเติมที่หัวข้อ
ทำให้ Node.js จากระบบของคุณใช้งานได้กับ Edge
เมื่อคุณใช้แฟล็ก --bundled-dependencies ใน apigeetool ระบบจะอัปโหลดแอป Node.js ไปยัง Hosted Targets และบีบอัดไฟล์ในเครื่อง/ส่วนตัวที่แสดงอยู่ในอาร์เรย์ bundledDependencies ใน package.json แล้วอัปโหลดพร้อมกับบันเดิล
แม้จะไม่ใช่สถานการณ์ที่พบบ่อย แต่โปรดทราบว่าหากคุณทำมิเรอร์ที่เก็บ NPM สาธารณะภายใน การทำให้ใช้งานได้จะล้มเหลว
หากบันเดิลการทำให้ใช้งานได้มีไฟล์ .npmrc หรือ package-lock.json ที่ชี้
ไปยังมิเรอร์ส่วนตัว ในกรณีนี้ โปรดละเว้น .npmrc หรือ package-lock.json
จากบันเดิลพร็อกซีที่คุณต้องการทำให้ใช้งานได้
การทำให้ใช้งานได้ด้วยที่เก็บ NPM ส่วนตัว
หากต้องการใช้โมดูลที่มาจากที่เก็บ NPM ส่วนตัว ให้ทำตามขั้นตอนต่อไปนี้
- เข้าสู่ระบบ npm โดยทำดังนี้
npm login
- รับโทเค็นการตรวจสอบสิทธิ์ npm โดยทำดังนี้
- ค้นหา .npmrc (ควรอยู่ใน ~/.npmrc)
- ใน .npmrc ให้จดโทเค็นที่ส่วนท้ายของบรรทัดที่มีลักษณะดังนี้
//registry.npmjs.org/:_authToken=**** - หรือใช้คำสั่ง
npm token <list | create | revoke>เพื่อแสดงรายการ สร้าง หรือเพิกถอนโทเค็นการตรวจสอบสิทธิ์ ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบ npm-token - เข้าถึงหน้าการกำหนดค่าแมปค่าคีย์ตามที่อธิบายไว้ด้านล่าง
Edge
วิธีเข้าถึงหน้าการกำหนดค่าแมปค่าคีย์โดยใช้ UI ของ Edge
- ลงชื่อเข้าใช้ apigee.com/edge
- เลือกผู้ดูแลระบบ > สภาพแวดล้อม > แมปค่าคีย์ ในแถบนำทางด้านซ้าย
Edge แบบคลาสสิก (Private Cloud)
วิธีเข้าถึงหน้าการกำหนดค่าแมปค่าคีย์โดยใช้ UI ของ Edge แบบคลาสสิก
- ลงชื่อเข้าใช้
http://ms-ip:9000โดยที่ ms-ip คือที่อยู่ IP หรือชื่อ DNS ของโหนด Management Server - เลือกAPI > การกำหนดค่าสภาพแวดล้อม > แมปค่าคีย์ ในแถบนำทางด้านบน
- คลิก + แมปค่าคีย์
- ในกล่องโต้ตอบแมปค่าคีย์ใหม่ ให้ป้อนชื่อแล้วเลือกเข้ารหัส
- คลิกเพิ่ม
- เพิ่มโทเค็นการตรวจสอบสิทธิ์ที่คุณค้นหาหรือสร้างไว้ก่อนหน้านี้เป็นรายการใหม่ใน KVM แต่ละรายการ ที่คุณเพิ่งสร้าง
- ในไฟล์ app.yaml ให้เพิ่มรายการที่อ้างอิง KVM และคีย์ ที่เชื่อมโยงกับโทเค็นการตรวจสอบสิทธิ์ npm ซึ่งควรมีลักษณะดังนี้
- แอตทริบิวต์ name ระดับบนสุดสอดคล้องกับชื่อของตัวแปรสภาพแวดล้อม ที่จะสร้างขึ้น
- name ในส่วน valueRef สอดคล้องกับ KVM ที่คุณ สร้างไว้ก่อนหน้านี้
- แอตทริบิวต์ key สอดคล้องกับคีย์ที่แมปกับโทเค็น npm ที่คุณ เพิ่มลงใน KVM
- สร้างไฟล์ .npmrc ในไดเรกทอรีเดียวกับ package.json ไฟล์นี้ควรมีลักษณะดังนี้
หรือหากไม่ได้ใช้//registry.npmjs.org/:_authToken=${NPM_TOKEN}registry.npmjs.orgคุณสามารถตั้งค่าขอบเขต ในไฟล์ .npmrc ได้โดยเพิ่มบรรทัดเช่น@myscope:registry=https://mycustomregistry.example.orgดูเอกสารประกอบ npmrc ด้วย - อัปโหลดหรืออัปเดตพร็อกซี Node.js โดยรวมไฟล์ .npmrc และไฟล์ app.yaml
- ตรวจสอบว่าพร็อกซีใหม่หรือพร็อกซีที่อัปเดตทำให้ใช้งานได้และทำงานร่วมกับโมดูลที่เก็บส่วนตัวที่ต้องการ
- หากพร็อกซีทำให้ใช้งานไม่ได้ ให้ตรวจสอบบันทึกการสร้างเพื่อดูว่าการติดตั้งโมดูล npm ส่วนตัวล้มเหลวหรือไม่ หากเป็นเช่นนั้น ให้ทำดังนี้
- ในแท็บพัฒนา ให้ตรวจสอบว่ามีไฟล์ .npmrc
- ตรวจสอบว่าโทเค็นใช้ได้ (ลองติดตั้งโมดูลในเครื่องโดยมีโทเค็นอยู่ใน ใน KVM)
- หากใช้ขอบเขตที่กำหนดเอง ให้ตรวจสอบว่าได้ตั้งค่าขอบเขตนั้นแล้ว
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_tokenโดยที่
การระบุเวอร์ชัน NPM สำหรับทรัพยากร Dependency ที่รวมไว้
โดยค่าเริ่มต้น ระบบจะใช้ NPM v4 เพื่อติดตั้งทรัพยากร Dependency ที่รวมไว้ในสภาพแวดล้อม Hosted Targets
อย่างไรก็ตาม หากต้องการใช้ NPM เวอร์ชันอื่น คุณสามารถระบุเวอร์ชันนั้นในตัวแปรสภาพแวดล้อม NPM_VERSION
คุณตั้งค่าตัวแปรนี้ได้ในไฟล์ Manifest ของแอปพลิเคชัน ดูรายละเอียดได้ที่หัวข้อองค์ประกอบไฟล์ Manifest
หากคุณใช้ทรัพยากร Dependency ที่รวมไว้และไม่ได้ระบุ NPM_VERSION Hosted Targets
จะใช้ NPM v4 โดยค่าเริ่มต้น หากไม่ได้ใช้ทรัพยากร Dependency ที่รวมไว้ ระบบจะใช้ NPM เวอร์ชันที่รวมอยู่ในรันไทม์ Node.js ที่คุณระบุ
ตัวอย่างทรัพยากร Dependency ที่รวมไว้
ดูตัวอย่างที่แสดงฟีเจอร์ทรัพยากร Dependency ที่รวมไว้กับ Hosted Targets ได้ที่ หัวข้อวิธีสร้างแอปพลิเคชัน Node.js ด้วย Hosted Functions โดยใช้โมดูลที่กำหนดเองเพิ่มปลายทางการตรวจสอบประสิทธิภาพการทำงาน
คุณมีตัวเลือกในการใช้ปลายทางการตรวจสอบประสิทธิภาพการทำงานสำหรับแอปพลิเคชัน Node.js Apigee จะใช้ปลายทางนี้เมื่อ แอปพลิเคชัน Node.js เริ่มทำงานเพื่อตรวจสอบว่าแอปพลิเคชันทำงานอยู่ในคอนเทนเนอร์
โดยค่าเริ่มต้น ปลายทางที่ Apigee คาดหวังคือ /health คุณสามารถเปลี่ยนปลายทางเริ่มต้น
ได้โดยระบุปลายทางในตัวแปรสภาพแวดล้อมที่ชื่อ
HOSTED_TARGET_HEALTH_CHECK_PATH คุณตั้งค่าตัวแปรนี้ได้ในไฟล์ Manifest ของแอปพลิเคชัน
ดูรายละเอียดได้ที่หัวข้อองค์ประกอบไฟล์ Manifest
คุณไม่จำเป็นต้องใช้ปลายทางการตรวจสอบประสิทธิภาพการทำงาน อย่างไรก็ตาม หากใช้ปลายทางการตรวจสอบประสิทธิภาพการทำงาน ปลายทาง โปรดทราบสิ่งต่อไปนี้
- หากแอปพลิเคชันออกเมื่อ Apigee เข้าถึงปลายทาง แอปพลิเคชันจะไม่เริ่มทำงานตามที่คาดไว้
- ปลายทางจะแสดงรหัสสถานะ HTTP 404 Not Found ก็ได้ ระบบจะใช้
/healthหรือHOSTED_TARGET_HEALTH_CHECK_PATHเพื่อตรวจสอบว่าแอปพลิเคชันทำงานอยู่หรือไม่เท่านั้น ระบบจะละเว้นการตอบสนองจริง
เปลี่ยนตำแหน่งแคช NPM
Node.js เวอร์ชันใหม่กว่าจะใช้ NPM เวอร์ชันที่ใช้ /root/.npm สำหรับแคช NPM
ตำแหน่งนี้ทำให้เกิดปัญหาสำหรับ Hosted Targets เนื่องจากตำแหน่งไดเรกทอรีดังกล่าวเป็นแบบอ่านอย่างเดียว
เนื่องจากรันไทม์ Hosted Target ใช้ระบบไฟล์ tmpfs ซึ่งมีเพียง /tmp เท่านั้นที่เขียนได้
หากต้องการหลีกเลี่ยงปัญหานี้ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม npm_config_cache ในไฟล์ app.yaml (ไฟล์ Manifest) ของแอปพลิเคชันเป็นไดเรกทอรีภายใน /tmp เช่น
runtime: node
application: my-express-app
env:
- name: npm_config_cache
value: /tmp/.npm
- name: NODE_ENV
value: production
- name: LOG_LEVEL
value: 3
เรียกใช้แอปพลิเคชันโดยไม่ใช้ NPM
โดยค่าเริ่มต้น Hosted Targets จะใช้ npm start เพื่อเรียกใช้แอปพลิเคชัน Hosted Target แต่
ในงานก่อนหน้านี้ เราได้พูดถึงปัญหาเกี่ยวกับการใช้ NPM เนื่องจากเวอร์ชันใหม่กว่าจะพยายามใช้
/root/.npm สำหรับแคช NPM ซึ่งเขียนไม่ได้และทำให้ Hosted Target
เริ่มทำงานไม่สำเร็จ แม้ว่างานก่อนหน้านี้จะช่วยแก้ปัญหานี้ได้ แต่คุณก็สามารถเลือกที่จะเรียกใช้แอปพลิเคชันโดยไม่ใช้ NPM ได้ หากต้องการทำเช่นนี้ คุณสามารถใช้ค่า command และ
args ในไฟล์
app.yaml (ไฟล์ Manifest)
ของแอปพลิเคชันเพื่อเรียกใช้ Hosted Target โดยตรงโดยใช้ node index.js เช่น
runtime: node
application: my-express-app
command: node
args:
- index.js
env:
- name: NODE_ENV
value: production
- name: LOG_LEVEL
value: 3
node index.js เป็นเพียงตัวอย่าง