บทแนะนำเป้าหมายที่โฮสต์

คุณกำลังดูเอกสารประกอบสำหรับ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

บทแนะนำต่อไปนี้อธิบายวิธีทำให้แอปพลิเคชัน Node.js ใช้งานได้ใน Edge โดยใช้ เป้าหมายที่โฮสต์ ซึ่งเป็นสภาพแวดล้อมรันไทม์ Node.js ดั้งเดิมที่โฮสต์โดย Apigee

บทแนะนำจะอธิบายการทำงานต่อไปนี้

  • การทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ Edge UI
  • การปรับใช้แอป Node.js กับเป้าหมายที่โฮสต์จากเครื่องสำหรับพัฒนาซอฟต์แวร์
  • การย้ายข้อมูลพร็อกซีที่มีอยู่ด้วยการติดตั้งใช้งานเป้าหมาย Edge Node.js ดั้งเดิมไปยังเป้าหมายที่โฮสต์

ทำให้แอป Node.js ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ UI ของ Edge

ในบทแนะนำนี้ คุณจะทําให้แอป Node.js ง่ายๆ ใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ UI ของ Edge เมื่อทําตามบทแนะนําจนเสร็จสิ้น คุณจะเข้าใจโครงสร้างและเนื้อหาพื้นฐานของพร็อกซีเป้าหมายที่โฮสต์ รวมถึงวิธีเข้าถึงการนําไปใช้งานและสร้างไฟล์บันทึก

ลงชื่อเข้าใช้

  1. ไปที่ apigee.com/edge
  2. ป้อนข้อมูลเข้าสู่ระบบ Apigee เพื่อลงชื่อเข้าใช้

สร้างพร็อกซีใหม่

  1. ในเมนูการนําทางด้านข้าง ให้เลือกพัฒนา > พร็อกซี API
  2. คลิก + พร็อกซี
  3. ในหน้าสร้างพร็อกซี ให้เลือกเป้าหมายที่โฮสต์
  4. คลิกถัดไป
  5. ป้อน hello-hosted-targets ในช่องชื่อพร็อกซี
  6. ตรวจสอบว่าได้เลือกตัวอย่าง "สวัสดีโลก" แล้ว
  7. คลิกถัดไป
  8. ในหน้าความปลอดภัย ให้เลือกส่งผ่าน (ไม่มี) สำหรับการให้สิทธิ์
  9. คลิกถัดไป
  10. คลิกถัดไป
  11. ในหน้าสร้าง โปรดตรวจสอบว่าได้เลือกสภาพแวดล้อมทดสอบ โปรดสังเกตว่าประเภทพร็อกซีคือเป้าหมายที่โฮสต์
  12. คลิกสร้างและทำให้ใช้งานได้ การทำให้พร็อกซีใช้งานได้อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์
  13. หลังจากทำให้พร็อกซีใช้งานได้เรียบร้อยแล้ว ให้คลิกดูพร็อกซี Hello-hosted-targets ที่ด้านล่างของหน้า
  14. เรียกใช้พร็อกซี API วิธีที่ง่ายที่สุดคือไปที่แท็บการติดตาม เริ่มเซสชันการติดตาม แล้วคลิกส่ง คุณควรได้รับสถานะ 200 พร้อมคําตอบต่อไปนี้
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

ตรวจสอบพร็อกซี

  1. ใน Edge UI ให้คลิกแท็บพัฒนา
  2. ใน Navigator ให้เลือกค่าเริ่มต้นในส่วนปลายทางเป้าหมาย
  3. ในเครื่องมือแก้ไขโค้ด ให้สังเกตว่ามีองค์ประกอบย่อย <HostedTarget/> ว่างอยู่ใต้องค์ประกอบ <TargetEndpoint> ต้องระบุแท็กว่างนี้ ซึ่งจะบอก Edge ว่าเป้าหมายของพร็อกซีคือแอปพลิเคชันที่ติดตั้งใช้งานในสภาพแวดล้อมเป้าหมายที่โฮสต์

  4. ในแถบนำทาง คุณจะเห็นเนื้อหาในส่วนสคริปต์ ไฟล์แอป Node.js จะแสดงอยู่ในป้ายกํากับโฮสต์

  5. ใน UI ของ Edge ให้ตรวจสอบไฟล์ที่แสดงในส่วนโฮสต์ในสคริปต์
    • ไฟล์ app.yaml มีข้อมูลการกําหนดค่า เช่น คุณสามารถเพิ่มตัวแปรสภาพแวดล้อมที่จะพร้อมใช้งานสําหรับแอปพลิเคชัน Node.js ขณะรันไทม์ คุณไม่จำเป็นต้องแก้ไขไฟล์นี้สำหรับตัวอย่างนี้
    • ไฟล์ index.js เป็นไฟล์หลักของแอป Node.js
    • หากแอปของคุณมีทรัพยากร Dependency ของโมดูล โมดูลดังกล่าวต้องแสดงใน package.json

ดูไฟล์บันทึก

ไฟล์บันทึกของแอปพลิเคชันอาจเป็นประโยชน์ในการแก้ไขข้อบกพร่องที่เกิดขึ้นระหว่างระยะการสร้างและระหว่างรันไทม์

  1. ใน UI ของ Edge ให้คลิกแท็บพัฒนา
  2. หากต้องการดูบันทึกการสร้าง ให้คลิกบันทึกการสร้าง
  3. หากต้องการดูบันทึกการทำให้ใช้งานได้ ให้คลิกบันทึกรันไทม์

    โปรดดูข้อมูลเพิ่มเติมที่การเข้าถึงไฟล์บันทึก

สรุป

  • คุณได้ทำให้แอปพลิเคชัน Node.js แบบง่ายใช้งานได้ในสภาพแวดล้อมเป้าหมายที่โฮสต์และทดสอบใน UI ของ Edge
  • คุณได้ทราบว่าพร็อกซีเป้าหมายที่โฮสต์ต้องใช้แท็กว่างแบบพิเศษในปลายทางเป้าหมายที่เรียกว่า <HostedTarget/>
  • คุณได้ทราบว่า Edge โหลดทรัพยากร Dependency ของโมดูลให้คุณโดยอัตโนมัติ ซึ่งทรัพยากร Dependency นั้นต้องอยู่ในไฟล์ package.json
  • และคุณยังได้เรียนรู้วิธีตรวจสอบไฟล์บันทึกของบิลด์และรันไทม์ด้วย

ทำให้ Node.js ใช้งานได้จากระบบของคุณไปยัง Edge

ส่วนนี้จะอธิบายวิธีทำให้แอปพลิเคชัน Node.js แบบสแตนด์อโลนจากระบบในเครื่องใช้งานได้กับเป้าหมายที่โฮสต์โดยใช้ apigeetool ยูทิลิตี apigeetool จะรวมแอป Node.js ไว้ในพร็อกซีเป้าหมายที่โฮสต์ใหม่และทำให้ใช้งานได้กับ Edge

ติดตั้ง apigeetool

การใช้ apigeetool เป็นวิธีที่นักพัฒนาซอฟต์แวร์แนะนำในการติดตั้งใช้งานโค้ดพร็อกซีใน Edge หากต้องการติดตั้ง apigeetool ให้เรียกใช้คำสั่ง NPM ต่อไปนี้

npm install -g apigeetool

สร้างแอป Node.js

เราได้จัดเตรียมโค้ดสำหรับแอป Node.js แบบง่ายๆ ไว้ให้เพื่อให้คุณใช้งานง่ายขึ้น

  1. สร้างไดเรกทอรีสำหรับแอป Node.js โดยเรียกใช้ไดเรกทอรี node-hosted-express
  2. cd ไปยังไดเรกทอรีใหม่
  3. สร้างไฟล์ชื่อ index.js และคัดลอกโค้ดนี้ลงในไฟล์
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. สร้างไฟล์ชื่อ package.json แล้วคัดลอกโค้ดนี้ลงในไฟล์ โปรดสังเกตว่าโมดูล Express แสดงรายการเป็นทรัพยากร Dependency
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. สร้างไฟล์ชื่อ app.yaml และคัดลอกโค้ดนี้ลงในไฟล์
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. ตรวจสอบว่าไดเรกทอรีมีลักษณะดังต่อไปนี้
    ls
    app.yaml index.js package.json
    

การตรวจสอบโครงสร้างไดเรกทอรีที่จำเป็นสำหรับโค้ดของแอป

แอป Node.js ต้องมีโครงสร้างเดียวกันกับแอป Node.js มาตรฐาน อย่างไรก็ตาม ตรวจสอบว่าคุณได้ทำตามข้อกำหนดต่อไปนี้ก่อนที่จะทำให้ใช้งานได้ด้วย apigeetool กับ Edge

  • จำเป็นต้องมีไฟล์ Manifest app.yaml และต้องอยู่ในไดเรกทอรีรากของแอป ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์นี้ได้ที่ไฟล์ Manifest
  • ต้องมีไฟล์ package.json โดยต้องระบุรายการทรัพยากร Dependency ที่แอปต้องการ
  • ไม่จำเป็นต้องสร้างโฟลเดอร์ node_modules Edge จะเรียกใช้ npm install ให้เมื่อมีการทำให้แอป Node.js ใช้งานได้ โดยจะดึงข้อมูลการพึ่งพาจาก package.json คุณจะต้องระบุ node_modules อย่างชัดแจ้งเฉพาะกรณีที่มีโมดูลที่กำหนดเองซึ่งไม่พร้อมใช้งานผ่านทาง npm

การติดตั้งใช้งานพร็อกซี

  1. ในเทอร์มินัล ให้ใส่ cd ไปยังไดเรกทอรีรากของแอปพลิเคชัน Node.js
  2. เรียกใช้ apigeetool ด้วยคำสั่ง deployhostedtarget
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    โดยที่ -n คือชื่อที่คุณต้องการกำหนดให้กับพร็อกซีใหม่ โดยต้องไม่ซ้ำกันภายในองค์กร อักขระที่คุณได้รับอนุญาตให้ใช้ในชื่อจะถูกจำกัดดังต่อไปนี้: a-z0-9._\-$%

    เช่น

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ apigeetool ได้ที่ https://github.com/apigee/apigeetool-node

กำลังทดสอบพร็อกซี

คุณทดสอบพร็อกซีด้วยคำสั่ง cURL กับไคลเอ็นต์ REST เช่น Postman หรือใน Edge UI ในเครื่องมือติดตามได้ ตัวอย่างคำสั่ง cURL

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

การดูบันทึกการสร้าง

บันทึกการสร้างจะแสดงเอาต์พุตที่เกี่ยวข้องกับการสร้างและทำให้แอป Node.js ใช้งานได้ โปรดดูไฟล์บันทึกด้วย

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

เช่น

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

การดูบันทึกรันไทม์

บันทึกรันไทม์แสดงเอาต์พุตที่เกี่ยวข้องกับแอปที่ทำงานอยู่ บันทึกรันไทม์จะมีขอบเขตเป็นสภาพแวดล้อมและแสดงบันทึกผลลัพธ์สําหรับการแก้ไขพร็อกซีที่ใช้งานอยู่ในปัจจุบัน โปรดดูไฟล์บันทึกด้วย

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

เช่น

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

การดูพร็อกซีใน Edge UI

หลังจากติดตั้งใช้งานสำเร็จแล้ว คุณจะดูและแก้ไขพร็อกซีในส่วนพร็อกซี API ของ Edge UI ได้

การย้ายข้อมูลพร็อกซี Node.js ที่มีอยู่ไปยังพร็อกซีเป้าหมายที่โฮสต์

ส่วนนี้จะอธิบายวิธีย้ายข้อมูลพร็อกซี Edge API ที่มีอยู่ซึ่งใช้การติดตั้งใช้งานเป้าหมาย Node.js ดั้งเดิมไปยังเป้าหมายที่โฮสต์ รวมถึงอธิบายวิธีทำให้พร็อกซีใช้งานได้หลังจากทำตามขั้นตอนการย้ายข้อมูลแล้ว

ขั้นตอนการย้ายข้อมูลจะเก็บโครงสร้างพร็อกซี API, นโยบาย, ขั้นตอน และองค์ประกอบการกําหนดค่าอื่นๆ ไว้ คุณสามารถย้ายข้อมูลใน4 ขั้นตอนตามที่ระบุไว้ด้านล่าง จากนั้นจึงติดตั้งใช้งานพร็อกซีที่ย้ายข้อมูลแล้วด้วย apigeetool

ขั้นตอนที่ 1: ปรับโครงสร้างไฟล์พร็อกซี

หากต้องการปรับโครงสร้างไฟล์ พร็อกซี API ต้องอยู่ในระบบไฟล์ในเครื่องของคุณ หากมีการติดตั้งใช้งานพร็อกซีใน Edge คุณต้องดาวน์โหลดก่อนดำเนินการต่อ ในการกำหนดค่าแบบดั้งเดิม และ "แพ็กเกจ" พร็อกซี Edge ที่มีโค้ด Node.js จะเป็นไปตามโครงสร้างไฟล์นี้ โค้ดแอปพลิเคชัน Node.js จะอยู่ในไดเรกทอรี resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


สำหรับเป้าหมายที่โฮสต์ คุณต้องวางไดเรกทอรีรูทของแอป Node.js ไว้ในไดเรกทอรีชื่อ resources/hosted เพียงสร้างไดเรกทอรีใหม่ชื่อ resources/hosted แล้วย้ายเนื้อหาของ resources/node เข้าไป จากนั้นจึงลบไดเรกทอรี resources/node ได้

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

ขั้นตอนที่ 2: เพิ่มไฟล์ Manifest

สร้างไฟล์ Manifest ชื่อ app.yaml แล้ววางในไดเรกทอรี apiproxy/resources/hosted

ต่อไปนี้เป็นตัวอย่างไฟล์ app.yaml โดยระบุว่ารันไทม์คือ Node.js (จำเป็น) นอกจากนี้ยังสร้างตัวแปรสภาพแวดล้อมในสภาพแวดล้อมการดำเนินการ (ตัวแปรที่แอป Node.js เข้าถึงได้) ตัวแปรสภาพแวดล้อมเป็นตัวเลือกและแสดงที่นี่เป็นตัวอย่างเท่านั้น โปรดดูรายละเอียดและตัวอย่างเพิ่มเติมที่หัวข้อไฟล์ Manifest

runtime: node
  env:
    - name: NODE_ENV
      value: production


ตัวอย่างต่อไปนี้แสดงโครงสร้างโปรเจ็กต์ Node.js ที่อยู่ในตำแหน่งที่ถูกต้องในพร็อกซีสำหรับการติดตั้งใช้งานเป้าหมายที่โฮสต์

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

ขั้นตอนที่ 3: ตรวจสอบว่าคุณมีไฟล์แพ็กเกจ.json

ในพร็อกซี Node.js ของ Edge แบบดั้งเดิม package.json เป็นตัวเลือก อย่างไรก็ตาม สำหรับเป้าหมายที่โฮสต์ คุณต้องระบุเป้าหมายไว้ในไดเรกทอรี apiproxy/resources/hosted อย่าลืมระบุทรัพยากร Dependency ที่จำเป็นสำหรับแอปในไฟล์นี้

ขั้นตอนที่ 4: แก้ไขปลายทางเป้าหมายของพร็อกซี

พร็อกซี Node.js แบบดั้งเดิมกำหนดให้ต้องมีแท็ก <ScriptTarget> ในไฟล์ปลายทางเป้าหมาย (โดยทั่วไปคือ /apiproxy/targets/default.xml) สำหรับเป้าหมายที่โฮสต์ คุณต้องเพิ่มแท็กว่างชื่อ &lt;HostedTarget/&gt; ในไฟล์ หากมีแท็ก ScriptTarget ในไฟล์ คุณก็เพียงแค่นำแท็กดังกล่าวออก เช่น

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

การติดตั้งใช้งานพร็อกซี

ตอนนี้คุณทำให้พร็อกซีใช้งานได้ด้วยคำสั่ง apigeetool deployproxy

  1. cd ไปยังไดเรกทอรีรูทของพร็อกซี: /apiproxy
  2. ใช้คําสั่งนี้เพื่อทําให้พร็อกซีใช้งานได้
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    เช่น

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ apigeetool ได้ที่ https://github.com/apigee/apigeetool-node/blob/master/README.md

กำลังทดสอบพร็อกซี

คุณสามารถทดสอบพร็อกซีด้วยคําสั่ง cURL, กับไคลเอ็นต์ REST เช่น Postman หรือใน UI ของ Edge ในเครื่องมือการติดตาม ตัวอย่างคำสั่ง cURL

curl http://myorg-test.apigee.net/hello-world
Hello,World!