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

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

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

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

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

ภาพรวม

ตัวอย่างนี้อธิบายวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge สำหรับระบบคลาวด์สาธารณะ การเรียกพร็อกซี 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. เรียกใช้คำสั่งต่อไปนี้เพื่อจัดเตรียมพร็อกซีบริการระยะไกลใน 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 for Envoy

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

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

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

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

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

ระบบจะเผยแพร่รูปภาพ Docker พร้อมแท็กเวอร์ชัน สำหรับการติดตั้งนี้ ให้ใช้เวอร์ชันล่าสุด โดยมีรูปภาพ 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
    

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

ติดตั้งและเรียกใช้พร็อกซี 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
    

    ตอนนี้ 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 สถานะ 403
  • เข้าถึง Apigee Analytics ใน UI ของ Edge ไปที่วิเคราะห์ > เมตริก API > API ประสิทธิภาพของพร็อกซี
  • สร้างและใช้ โทเค็น JWT เพื่อตรวจสอบสิทธิ์การเรียก API
  • ใช้ CLI เพื่อจัดการ สร้างโทเค็น และควบคุมการผูก ดูรายละเอียด CLI ได้ที่ข้อมูลอ้างอิง