คุณกำลังดูเอกสารประกอบ 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วิธีเข้าถึงหน้าการกำหนดค่าแมปค่าคีย์โดยใช้ Edge UI - ลงชื่อเข้าใช้ apigee.com/edge
- เลือกผู้ดูแลระบบ > สภาพแวดล้อม > Key Value Maps ในแถบนำทางด้านซ้าย
 คลาสสิก Edge (Private Cloud)วิธีเข้าถึงหน้าการกำหนดค่าแมปค่าคีย์โดยใช้ 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.yamlfile (ไฟล์ 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 เป็นเพียง