การใช้อะแดปเตอร์ Apigee สำหรับ Envoy กับ Apigee Edge

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

ตัวอย่างนี้แสดงวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge

ข้อกำหนดเบื้องต้น

ก่อนเริ่มใช้งาน

ภาพรวม

ตัวอย่างนี้อธิบายวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge สำหรับ Public Cloud การเรียกพร็อกซี API จะไหลผ่าน Envoy ที่ทำงานเป็นแอปพลิเคชันแบบเนทีฟ โดย Edge จะให้บริการการจัดการ API ผ่าน Apigee Remote Service for Envoy

รูปภาพต่อไปนี้แสดงสถาปัตยกรรมพื้นฐานสำหรับการผสานรวม Apigee Edge

ภาพรวม
    ของ Envoy Adapter ที่ทำงานในตัวเพื่อสื่อสารกับ Apigee Edge Cloud รวมถึง
    Management Plane, Runtime Plane และบริการของ GCP

พร็อกซี Envoy และ Remote Service กำลังทำงานในเครื่อง Envoy จัดการการรับส่งข้อมูล API ไปยังและจากบริการเป้าหมาย และสื่อสารกับ Remote Service นอกจากนี้ Remote Service ยังสื่อสาร กับ Apigee Edge Cloud เพื่อดึงข้อมูลผลิตภัณฑ์ API และพร็อกซี

จัดเตรียม Apigee Edge

ในขั้นตอนนี้ คุณจะใช้ Remote Service CLI เพื่อจัดเตรียมพร็อพเพอร์ตี้ Apigee Adapter for Envoy ให้กับ Apigee Edge คำสั่งการจัดเตรียมจะทำให้ใช้งานได้พร็อกซี API กับ Apigee Edge, รวมถึงตั้งค่าใบรับรองใน Apigee และสร้างข้อมูลเข้าสู่ระบบที่ Remote Service จะใช้เพื่อเชื่อมต่อจากระบบของคุณกับ Apigee อย่างปลอดภัย

  1. ไปที่ไดเรกทอรี $CLI_HOME
    cd $CLI_HOME
  2. สร้างตัวแปรสภาพแวดล้อมต่อไปนี้ ระบบจะใช้ตัวแปรเหล่านี้เป็น พารามิเตอร์กับสคริปต์การจัดเตรียม
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    โดยที่

    ตัวแปร คำอธิบาย
    organization_name ชื่อองค์กร Apigee
    environment_name ชื่อสภาพแวดล้อมในองค์กร
    your_apigee_username ชื่อผู้ใช้บัญชี Apigee โดยปกติแล้วชื่อผู้ใช้จะเป็นอีเมล
    your_apigee_password รหัสผ่าน Apigee
  3. เรียกใช้คำสั่งต่อไปนี้เพื่อจัดเตรียมพร็อกซี Remote Service ใน Apigee Edge:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. ตรวจสอบเนื้อหาของไฟล์ config.yaml ซึ่งควรมีลักษณะดังนี้
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

    ค่าคีย์และค่าลับใช้เพื่อตรวจสอบคำขอจากพร็อกซี Remote Service ไปยัง Apigee Edge

เรียกใช้บริการ Apigee Remote Service for Envoy

คุณสามารถเรียกใช้ Remote Service เป็นไบนารีเนทีฟ หรือใน Docker ก็ได้

เรียกใช้บริการแบบเนทีฟ

เรียกใช้ไบนารีของบริการด้วยไฟล์กำหนดค่าที่คำสั่งการจัดเตรียมส่งออก

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

เรียกใช้บริการใน Docker

ระบบจะเผยแพร่รูปภาพ Docker พร้อมแท็กการเผยแพร่ สำหรับการติดตั้งนี้ ให้ใช้เวอร์ชันล่าสุด โดยมีรูปภาพ 3 รูปแบบให้เลือก ดังนี้

ความหลากหลาย รูปภาพ
scratch google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu with Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

ตัวอย่างเช่น หากต้องการเรียกใช้รูปภาพ scratch ด้วย config.yaml ในเครื่องที่พร้อมใช้งานเป็น /config.yaml ผ่านการติดตั้งโวลุ่ม ให้ใช้คำสั่งนี้

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0

ติดตั้งและเรียกใช้พร็อกซี Envoy

ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งและเรียกใช้พร็อกซี Envoy

  1. ดาวน์โหลดไบนารี Envoy หรือ สร้าง หรือใช้ Docker
  2. เรียกใช้ Envoy โดยใช้ไฟล์กำหนดค่าตัวอย่างที่ตั้งค่าไว้สำหรับบริการ httpbin.org
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

ทดสอบการติดตั้ง

  1. เรียกใช้บริการ httpbin
    curl -i http://localhost:8080/httpbin/headers
    

    ตอนนี้ Apigee กำลังจัดการบริการอยู่ และเนื่องจากคุณไม่ได้ระบุคีย์ API การเรียกจึงแสดงข้อผิดพลาดต่อไปนี้

    curl -i http://localhost:8080/httpbin/headers
    HTTP/1.1 403 Forbidden
    date: Tue, 12 May 2020 17:51:36 GMT
    server: envoy
    content-length: 0
    x-envoy-upstream-service-time: 11
  2. กำหนดค่าผลิตภัณฑ์ API และรับคีย์ API ตามที่อธิบายไว้ใน หัวข้อวิธีรับคีย์ API.
  3. ทำการเรียก API โดยใช้คีย์
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    การเรียกควรสำเร็จโดยมีสถานะ 200 และแสดงรายการส่วนหัวในการตอบสนอง เช่น

    curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS"
    HTTP/1.1 200 OK
    server: envoy
    date: Tue, 12 May 2020 17:55:34 GMT
    content-type: application/json
    content-length: 828
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 301
    
    {
      "headers": {
        "Accept": "*/*",
        "Content-Length": "0",
        "Host": "httpbin.default.svc.cluster.local",
        "User-Agent": "curl/7.70.0-DEV",
        "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS",
        "X-Apigee-Accesstoken": "",
        "X-Apigee-Api": "httpbin.default.svc.cluster.local",
        "X-Apigee-Apiproducts": "httpbin",
        "X-Apigee-Application": "httpbin",
        "X-Apigee-Authorized": "true",
        "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS",
        "X-Apigee-Developeremail": "user@example.com",
        "X-Apigee-Environment": "test",
        "X-Apigee-Organization": "my-org",
        "X-Apigee-Scope": "",
        "X-B3-Parentspanid": "1476f9a2329bbdfa",
        "X-B3-Sampled": "0",
        "X-B3-Spanid": "1ad5c19bfb4bc96f",
        "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa"
      }
    }

ขั้นตอนถัดไป

ตอนนี้ Apigee กำลังจัดการการรับส่งข้อมูล API ไปยังบริการ httpbin คุณสามารถสำรวจและลองใช้ฟีเจอร์บางอย่างได้ดังนี้

  • หากคุณกำหนดค่าผลิตภัณฑ์ API ตามที่อธิบายไว้ใน วิธีรับคีย์ API, ระบบจะตั้งค่าขีดจำกัดโควต้าเป็น 5 คำขอต่อนาที ลองเรียกใช้บริการ httpbin อีก 2-3 ครั้งเพื่อกระตุ้นโควต้า เมื่อเกินโควต้า คุณจะเห็นข้อผิดพลาดนี้
    HTTP/1.1 429 Too Many Requests
  • เข้าถึง Apigee Analytics ใน UI ของ Edge ไปที่วิเคราะห์ > เมตริก API > API ประสิทธิภาพของพร็อกซี
  • สร้างและใช้ โทเค็น JWT เพื่อตรวจสอบสิทธิ์การเรียก API
  • ใช้ CLI เพื่อจัดการ สร้างโทเค็น และควบคุมการผูก ดูรายละเอียด CLI ได้ที่ข้อมูลอ้างอิง