คุณกำลังดูเอกสารประกอบสำหรับ Apigee Edge
ไปที่เอกสารประกอบเกี่ยวกับ Apigee Xข้อมูล
การนำพร็อกซีเป้าหมายที่โฮสต์ออก
เมื่อคุณยกเลิกการทำให้พร็อกซี Edge ใช้งานได้ ซึ่งมีแอปพลิเคชันเป้าหมายที่โฮสต์อยู่ แอปเป้าหมายที่โฮสต์ซึ่งเชื่อมโยงอยู่จะถูกยกเลิกการทำให้ใช้งานได้ แต่จะไม่ลบอิมเมจของแอปพลิเคชันที่สำคัญ หากคุณทำให้พร็อกซีใช้งานได้อีกครั้ง แอปเป้าหมายที่โฮสต์จะมีการทำให้ใช้งานได้อีกครั้ง
การลบพร็อกซีเป้าหมายที่โฮสต์
หลังจากลบพร็อกซีของเป้าหมายที่โฮสต์แล้ว อินสแตนซ์รันไทม์ที่เกี่ยวข้องจะหยุดทํางานภายในระยะเวลาหนึ่ง แต่โค้ดของแอปพลิเคชันจะยังคงอยู่
การเข้าถึงไฟล์บันทึก
ไฟล์บันทึกมีประโยชน์ในการแก้ไขข้อบกพร่องและการแก้ปัญหา คุณสามารถดูไฟล์บันทึก 2 ประเภทสําหรับการติดตั้งใช้งานเป้าหมายที่โฮสต์ได้ ดังนี้
- บันทึกการสร้าง - แสดงเอาต์พุตที่เกี่ยวข้องกับการติดตั้งใช้งานและการสร้างแอปเป้าหมายที่โฮสต์
- บันทึกรันไทม์ - แสดงเอาต์พุตที่เกี่ยวข้องกับแอปเป้าหมายที่โฮสต์ซึ่งทำงานอยู่ บันทึกรันไทม์จะกำหนดขอบเขตตามสภาพแวดล้อมและแสดงข้อมูลบันทึกสำหรับโปรซีดีที่ติดตั้งใช้งานอยู่ในปัจจุบัน
การเข้าถึงบันทึกจาก UI ของ Edge
- ไปที่ 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
เมื่อคุณใช้ Flag --bundled-dependencies
ใน apigeetool
ระบบจะอัปโหลดแอป Node.js ไปยังเป้าหมายที่โฮสต์ รวมถึงไฟล์ในเครื่อง/ไฟล์ส่วนตัวที่อยู่ในอาร์เรย์ Dependencies ใน 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 ของโหนดเซิร์ฟเวอร์การจัดการ - เลือก API > การกำหนดค่าสภาพแวดล้อม > แมปคีย์-ค่าในแถบนำทางด้านบน
- คลิก + แมปค่าคีย์
- ในกล่องโต้ตอบการแมปคีย์-ค่าใหม่ ให้ป้อนชื่อและเลือกเข้ารหัส
- คลิกเพิ่ม
- เพิ่มโทเค็นการตรวจสอบสิทธิ์ที่คุณพบหรือสร้างไว้ก่อนหน้านี้เป็นรายการใหม่ใน KVM แต่ละรายการที่คุณเพิ่งสร้างขึ้น
- ในไฟล์ app.yaml ให้เพิ่มรายการที่อ้างอิง KVM และคีย์ที่เชื่อมโยงกับโทเค็นการตรวจสอบสิทธิ์ npm ซึ่งควรมีหน้าตาเช่นนี้
- แอตทริบิวต์ชื่อระดับบนสุดจะสอดคล้องกับชื่อตัวแปรสภาพแวดล้อมที่จะสร้างขึ้น
- 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 แบบกลุ่มในสภาพแวดล้อมเป้าหมายที่โฮสต์ไว้
อย่างไรก็ตาม หากต้องการใช้ NPM เวอร์ชันอื่น คุณสามารถระบุไว้ในตัวแปรสภาพแวดล้อม NPM_VERSION
คุณสามารถตั้งค่าตัวแปรนี้ได้ในไฟล์ Manifest ของแอปพลิเคชัน ดูรายละเอียดได้ที่องค์ประกอบไฟล์ Manifest
หากคุณใช้ทรัพยากร Dependency แบบกลุ่มและไม่ระบุ NPM_VERSION
เป้าหมายที่โฮสต์จะใช้ NPM v4 โดยค่าเริ่มต้น หากคุณไม่ได้ใช้ทรัพยากร Dependency ในแพ็กเกจ ระบบจะใช้เวอร์ชันของ NPM ที่รวมอยู่ในรันไทม์ Node.js ที่ระบุ
ตัวอย่างทรัพยากรที่รวมไว้
ดูตัวอย่างที่แสดงฟีเจอร์การพึ่งพาแบบรวมกลุ่มกับเป้าหมายที่โฮสต์ได้ที่วิธีสร้างแอปพลิเคชัน 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
ตำแหน่งนี้แสดงปัญหาสำหรับเป้าหมายที่โฮสต์เนื่องจากตำแหน่งไดเรกทอรีเป็นแบบอ่านอย่างเดียว เนื่องจากรันไทม์ 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
โดยค่าเริ่มต้น เป้าหมายที่โฮสต์จะใช้ 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
เป็นเพียงตัวอย่างเดียวเท่านั้น