คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
การยกเลิกการทำให้พร็อกซีเป้าหมายที่ฝากบริการใช้งานได้
เมื่อคุณยกเลิกการทำให้พร็อกซี Edge ที่มีแอปพลิเคชันเป้าหมายที่โฮสต์อยู่ พร็อพเพอร์ตี้ที่เกี่ยวข้อง แอปเป้าหมายที่โฮสต์ไว้ไม่มีการทำให้ใช้งานได้ แต่ไม่ลบอิมเมจของแอปพลิเคชันที่สำคัญ หากคุณ ทำให้พร็อกซีใช้งานได้อีกครั้ง แอปเป้าหมายที่โฮสต์จะมีการทำให้ใช้งานได้อีกครั้ง
การลบพร็อกซีเป้าหมายที่โฮสต์
หลังจากที่คุณลบพร็อกซีเป้าหมายที่โฮสต์ อินสแตนซ์รันไทม์ที่สำคัญจะหยุดทำงาน ได้ภายในเวลาหนึ่งๆ แต่โค้ดของแอปพลิเคชันจะยังคงอยู่
การเข้าถึงไฟล์บันทึก
ไฟล์บันทึกมีประโยชน์ในการแก้ไขข้อบกพร่องและการแก้ปัญหา คุณสามารถดูไฟล์บันทึก 2 ประเภทสำหรับ การทำให้เป้าหมายที่โฮสต์ใช้งานได้
- บันทึกการสร้าง - แสดงผลลัพธ์ที่เกี่ยวข้องกับการทำให้ใช้งานได้และการสร้างแอปเป้าหมายที่โฮสต์
- บันทึกรันไทม์ - แสดงเอาต์พุตที่เกี่ยวข้องกับแอปเป้าหมายที่โฮสต์ซึ่งทำงานอยู่ บันทึกรันไทม์ กำหนดขอบเขตไว้สำหรับสภาพแวดล้อมและแสดงข้อมูลบันทึกสำหรับการแก้ไขพร็อกซีที่ทำให้ใช้งานได้ในปัจจุบัน
การเข้าถึงบันทึกจาก Edge UI
- ไปที่ apigee.com/edge
- ป้อนข้อมูลเข้าสู่ระบบ แล้วคลิกลงชื่อเข้าใช้
- เลือก Develop > พร็อกซี 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 ไปยังเป้าหมายที่โฮสต์และไฟล์ในเครื่อง/ส่วนตัวทั้งหมดที่อยู่ในรายการ
ในอาร์เรย์ 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
- ลงชื่อเข้าใช้ apigee.com/edge
- เลือกผู้ดูแลระบบ > สภาพแวดล้อม > Key Value Maps ในแถบนำทางด้านซ้าย
วิธีเข้าถึงหน้าการกำหนดค่าแมปค่าคีย์โดยใช้ UI แบบคลาสสิกของ Edge
- ลงชื่อเข้าใช้
http://ms-ip:9000
โดยที่ ms-ip คือ ที่อยู่ IP หรือชื่อ DNS ของโหนดเซิร์ฟเวอร์การจัดการ - เลือก API > การกำหนดค่าสภาพแวดล้อม > Key Value Maps ในแถบนำทางด้านบน
- คลิก + แมปค่าคีย์
- ในกล่องโต้ตอบการแมปค่าคีย์ใหม่ ให้ป้อนชื่อแล้วเลือกเข้ารหัส
- คลิกเพิ่ม
- เพิ่มโทเค็นการตรวจสอบสิทธิ์ที่คุณมีอยู่ก่อนหน้านี้หรือสร้างขึ้นเป็นรายการใหม่ในแต่ละ 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 อยู่
- ตรวจสอบว่าโทเค็นของคุณถูกต้อง (ลองติดตั้งโมดูลในเครื่องโดยมีโทเค็นแสดงอยู่ ในหน่วยกิโลวัตต์-ชั่วโมง)
- หากใช้ขอบเขตที่กำหนดเอง โปรดตรวจสอบว่าได้กำหนดขอบเขตดังกล่าวแล้ว
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 แบบกลุ่ม
สำหรับตัวอย่างที่แสดงให้เห็นถึงฟีเจอร์ทรัพยากร 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
ตำแหน่งนี้ทำให้เกิดปัญหาสำหรับเป้าหมายที่โฮสต์ เนื่องจากตำแหน่งไดเรกทอรีนั้นเป็นแบบอ่านอย่างเดียว
เนื่องจากรันไทม์ Hosted Target ใช้ระบบไฟล์ tmpfs ซึ่งเขียนได้เฉพาะ /tmp
คุณตั้งค่าตัวแปรสภาพแวดล้อม npm_config_cache
เพื่อหลีกเลี่ยงปัญหานี้ได้
สำหรับแอปพลิเคชันของคุณ
app.yaml
file (ไฟล์ 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
เป็นเพียง