การใช้อะแดปเตอร์ 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 สำหรับ Envoy

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

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

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

จัดสรร Apigee Edge

ในขั้นตอนนี้ คุณจะใช้ CLI ของบริการระยะไกลเพื่อจัดสรรเนื้อหา Apigee Adapter สำหรับ Envoy ไปยัง Apigee Edge คำสั่งการจัดสรรจะติดตั้งใช้งานพร็อกซี API ใน Apigee Edge และยังตั้งค่าใบรับรองใน Apigee รวมถึงสร้างข้อมูลเข้าสู่ระบบที่บริการระยะไกลจะใช้เพื่อเชื่อมต่อจากระบบของคุณไปยัง 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. เรียกใช้คำสั่งต่อไปนี้เพื่อจัดสรรพร็อกซีบริการระยะไกลใน Apigee Edge
    ./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. ตรวจสอบเนื้อหาของไฟล์ config.yaml ซึ่งควรมีหน้าตาเช่นนี้
    # Configuration for apigee-remote-service-envoy (platform: SaaS)
    # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: apigee-remote-service-envoy
      namespace: apigee
    data:
      config.yaml: |
        tenant:
          internal_api: https://istioservices.apigee.net/edgemicro
          remote_service_api: https://my-username-test.apigee.net/remote-service
          org_name: my-org
          env_name: my-env
          key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664
          secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75

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

เรียกใช้บริการ Apigee Remote Service สำหรับ Envoy

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

เรียกใช้บริการโดยไม่ต้องติดตั้งโปรแกรมเพิ่ม

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

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

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

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

ความหลากหลาย รูปภาพ
Google Distroless gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Ubuntu ที่มี Boring Crypto google/apigee-envoy-adapter:v1.1.0-boring

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

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

สร้างไฟล์การกำหนดค่าตัวอย่าง

ใช้คำสั่ง apigee-remote-service-cli samples create เพื่อสร้าง ไฟล์การกำหนดค่าตัวอย่าง

สำหรับตัวอย่างนี้ คุณต้องมีไฟล์ที่สร้างขึ้นต่อไปนี้

  • envoy-config.yaml - การกำหนดค่าการติดตั้งใช้งานสำหรับบริการ HTTP

วิธีสร้างตัวอย่าง

  1. ไปที่ไดเรกทอรี $CLI_HOME
  2. เรียกใช้คำสั่งนี้เพื่อสร้างไฟล์

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml

    ระบบจะส่งออกไฟล์ต่อไปนี้ไปยังไดเรกทอรี ./samples

    ls samples
    envoy-config.yaml
    

ดูข้อมูลเพิ่มเติมได้ที่คำสั่งตัวอย่าง

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

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

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

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

  1. โทรหาhttpbin บริการ:
    curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
    

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

    curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
    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 "HOST:httpbin.org" -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 403
  • เข้าถึงข้อมูลวิเคราะห์ Apigee ใน UI ของ Edge ไปที่วิเคราะห์ > เมตริก API > ประสิทธิภาพพร็อกซี API
  • สร้างและใช้โทเค็น JWT เพื่อตรวจสอบสิทธิ์การเรียก API
  • ใช้ CLI เพื่อจัดการ สร้างโทเค็น และควบคุมการเชื่อมโยง ดูรายละเอียด CLI ได้ที่ข้อมูลอ้างอิง