คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
การยกเลิกการทำให้พร็อกซีเป้าหมายที่โฮสต์ใช้งานได้
เมื่อคุณยกเลิกการทำให้พร็อกซี Edge ที่มีแอปพลิเคชันเป้าหมายที่โฮสต์ใช้งานได้ แอปเป้าหมายที่โฮสต์ที่เกี่ยวข้องจะถูกยกเลิกการทำให้ใช้งานได้ แต่อิมเมจของแอปพลิเคชันที่สำคัญจะไม่ถูกลบ หากคุณทำให้พร็อกซีใช้งานได้อีกครั้ง แอปเป้าหมายที่โฮสต์ก็จะทำให้ใช้งานได้อีกครั้ง
การลบพร็อกซีเป้าหมายที่โฮสต์
หลังจากที่ลบพร็อกซีเป้าหมายที่โฮสต์ อินสแตนซ์รันไทม์ที่สำคัญจะหยุดทำงานภายในระยะเวลาที่กำหนด แต่โค้ดของแอปพลิเคชันจะยังคงอยู่
การเข้าถึงไฟล์บันทึก
ไฟล์บันทึกมีประโยชน์ในการแก้ไขข้อบกพร่องและแก้ปัญหา คุณดูไฟล์บันทึก 2 ประเภทสำหรับการทำให้เป้าหมายที่โฮสต์ใช้งานได้ ดังนี้
- บันทึกการสร้าง - แสดงเอาต์พุตที่เกี่ยวข้องกับการทำให้ใช้งานได้และการสร้างแอปเป้าหมายที่โฮสต์
- บันทึกรันไทม์ - แสดงเอาต์พุตที่เกี่ยวข้องกับแอปเป้าหมายที่โฮสต์ที่ทำงานอยู่ บันทึกรันไทม์จะกำหนดขอบเขตไว้เป็นสภาพแวดล้อมและแสดงข้อมูลบันทึกสำหรับการแก้ไขพร็อกซีที่ทำให้ใช้งานได้อยู่ในปัจจุบัน
การเข้าถึงบันทึกจาก Edge UI
- ไปที่ apigee.com/edge
- ป้อนข้อมูลเข้าสู่ระบบ แล้วคลิกลงชื่อเข้าใช้
- เลือกพัฒนา > พร็อกซี API ในเมนูการนำทางด้านข้าง
- เลือกพร็อกซีที่ต้องการดูบันทึก
- คลิกแท็บพัฒนา
- หากต้องการดูบันทึกของบิลด์ ให้คลิกบันทึกของบิลด์
- หากต้องการดูบันทึกรันไทม์ ให้คลิกบันทึกรันไทม์
การเข้าถึงบันทึกด้วย API
นอกจากนี้คุณยังใช้ Edge API เพื่อเรียกบันทึกเป้าหมายที่โฮสต์ได้ด้วย โปรดดูรายละเอียดที่รับบันทึก Node.js ที่แคชไว้
การใช้ที่เก็บ npm ส่วนตัว
หัวข้อนี้จะอธิบายวิธีทำให้พร็อกซี Node.js ใช้งานได้กับเป้าหมายที่โฮสต์ในกรณีที่ใช้ที่เก็บ NPM ส่วนตัวในสภาพแวดล้อมการพัฒนา
สิ่งที่คุณจำเป็นต้องทราบเกี่ยวกับการใช้ที่เก็บส่วนตัว
เมื่อทำให้แอป Node.js ใช้งานได้ใน Edge ระบบจะนำเข้าทรัพยากร Dependency ทั้งหมดของโปรเจ็กต์โดยอัตโนมัติเป็นส่วนหนึ่งของกระบวนการทำให้ใช้งานได้
โดยพื้นฐานแล้ว เป้าหมายที่โฮสต์จะเรียกใช้ npm install
บนโค้ดของคุณเมื่อทำให้ใช้งานได้แล้ว
อย่างไรก็ตาม หากคุณใช้ที่เก็บ NPM ส่วนตัวในสภาพแวดล้อมการพัฒนา คุณจะไม่สามารถแก้ไขทรัพยากร Dependency ส่วนตัวในระบบคลาวด์ได้ ในกรณีนี้ วิธีแก้ปัญหาคือการใช้ตัวเลือก --bundled-dependencies
เมื่อใช้ยูทิลิตีการทำให้ใช้งานได้ apigeetool โปรดดูหัวข้อทำให้ Node.js ใช้งานได้จากระบบของคุณไปยัง Edge
เมื่อใช้แฟล็ก --bundled-dependencies
ใน apigeetool
ระบบจะอัปโหลดแอป Node.js ไปยังเป้าหมายที่โฮสต์และไฟล์ในเครื่อง/ไฟล์ส่วนตัวทั้งหมดที่แสดงในอาร์เรย์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
วิธีเข้าถึงหน้าการกำหนดค่าการแมปค่าคีย์โดยใช้ Edge UI มีดังนี้
- ลงชื่อเข้าใช้ apigee.com/edge
- เลือกผู้ดูแลระบบ > สภาพแวดล้อม > แมปค่าคีย์ในแถบนำทางด้านซ้าย
Classic Edge (Private Cloud)
วิธีเข้าถึงหน้าการกำหนดค่าการแมปค่าคีย์โดยใช้ UI ของ Classic Edge
- ลงชื่อเข้าใช้
http://ms-ip:9000
โดยที่ ms-ip คือที่อยู่ IP หรือชื่อ DNS ของโหนดเซิร์ฟเวอร์การจัดการ - เลือก API > การกำหนดค่าสภาพแวดล้อม > การจับคู่ค่าคีย์ในแถบนำทางด้านบน
- คลิก + แมปค่าคีย์
- ในกล่องโต้ตอบการแมปค่าคีย์ใหม่ ให้ป้อนชื่อและเลือกเข้ารหัสแล้ว
- คลิกเพิ่ม
- เพิ่มโทเค็นการตรวจสอบสิทธิ์ที่คุณพบหรือสร้างไว้ก่อนหน้านี้เป็นรายการใหม่ใน KVM แต่ละรายการที่คุณเพิ่งสร้าง
- ในไฟล์ app.yaml ให้เพิ่มรายการที่อ้างอิง KVM และคีย์ที่เชื่อมโยงกับโทเค็นการตรวจสอบสิทธิ์ npm ซึ่งควรมีหน้าตาเช่นนี้
- แอตทริบิวต์ name ระดับบนสุดสอดคล้องกับชื่อของตัวแปรสภาพแวดล้อมที่จะสร้างขึ้น
- name ในส่วน valueRef สอดคล้องกับ KVM ที่สร้างไว้ก่อนหน้านี้
- แอตทริบิวต์คีย์จะสอดคล้องกับคีย์ที่แมปกับโทเค็น 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 แบบกลุ่มในสภาพแวดล้อมเป้าหมายที่โฮสต์
แต่หากต้องการใช้ NPM เวอร์ชันอื่น ให้ระบุในตัวแปรสภาพแวดล้อม NPM_VERSION
คุณสามารถตั้งค่าตัวแปรนี้ได้ในไฟล์ Manifest ของแอปพลิเคชัน โปรดดูรายละเอียดในองค์ประกอบของไฟล์ Manifest
หากคุณใช้ทรัพยากร Dependency แบบกลุ่มและไม่ระบุ NPM_VERSION
เป้าหมายที่โฮสต์จะใช้ NPM v4 โดยค่าเริ่มต้น หากไม่ได้ใช้ทรัพยากร Dependency แบบกลุ่ม ระบบจะใช้เวอร์ชัน NPM ที่รวมอยู่ในรันไทม์ของ Node.js ที่ระบุ
ตัวอย่างการขึ้นต่อกันที่จัดกลุ่มไว้
ลองดูตัวอย่างที่แสดงฟีเจอร์ทรัพยากร Dependency ที่รวมอยู่ในเป้าหมายที่โฮสต์ ได้ที่วิธีสร้างแอปพลิเคชัน Node.js ด้วยฟังก์ชันที่โฮสต์โดยใช้โมดูลที่กำหนดเองเพิ่มปลายทางการตรวจสอบประสิทธิภาพการทำงาน
คุณเลือกใช้ปลายทางการตรวจสอบประสิทธิภาพการทำงานสำหรับแอปพลิเคชัน 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
ตำแหน่งนี้ทำให้เกิดปัญหาสำหรับเป้าหมายที่โฮสต์เนื่องจากตำแหน่งไดเรกทอรีดังกล่าวเป็นแบบอ่านอย่างเดียวเนื่องจากรันไทม์เป้าหมายที่โฮสต์ใช้ระบบไฟล์ 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
โดยค่าเริ่มต้น เป้าหมายที่โฮสต์จะใช้ npm start
เพื่อเรียกใช้แอปพลิเคชันเป้าหมายที่โฮสต์ แต่ในงานก่อนหน้า เราได้พูดถึงปัญหาในการใช้ NPM เนื่องจากเวอร์ชันใหม่จะพยายามใช้ /root/.npm
สำหรับแคช NPM ซึ่งเขียนไม่ได้และส่งผลให้เป้าหมายที่โฮสต์ล้มเหลว แม้ว่างานก่อนหน้านี้จะช่วยแก้ปัญหานี้ แต่อีกทางเลือกหนึ่งก็คือการเรียกใช้แอปพลิเคชันโดยไม่ใช้ NPM หากต้องการดำเนินการ ให้ใช้ค่า command
และ args
ในไฟล์ app.yaml
(ไฟล์ Manifest) ของแอปพลิเคชันเพื่อเรียกใช้เป้าหมายที่โฮสต์โดยตรงโดยใช้ 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
เป็นเพียงตัวอย่างเท่านั้น