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

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

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

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

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

ภาพรวม

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

การจัดสรร Apigee Edge

ในขั้นตอนนี้ คุณจะใช้ Remote Service CLI เพื่อจัดสรรอะแดปเตอร์ Apigee สำหรับชิ้นงาน 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

    $CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \
      --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml

    หากคุณกำลังอัปเกรด ให้ใช้คำสั่งนี้กับแฟล็ก --force-proxy-install เพื่อจัดสรร Apigee

    $CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --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 สำหรับบริการ Envoy

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

เรียกใช้บริการจากเครื่องของคุณเอง

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

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

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

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

ความหลากหลาย รูปภาพ
แบบดิสโทรเลสของ Google google/apigee-envoy-adapter:v2.0.0
Ubuntu google/apigee-envoy-adapter:v2.0.0-ubuntu
Ubuntu ที่มี Boring Crypto google/apigee-envoy-adapter:v2.0.0-boring

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

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

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

สร้างไฟล์การกำหนดค่า Envoy โดยใช้ CLI:

  1. ตรวจสอบว่าคุณอยู่ในไดเรกทอรี $ENVOY_HOME
  2. แสดงรายการเทมเพลตการกำหนดค่าที่ใช้ได้ ดังนี้
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. เรียกใช้คำสั่ง "ตัวอย่าง" สำหรับ TEMPLATE ให้แทนที่เทมเพลต Envoy ที่รองรับรายการใดรายการหนึ่งต่อไปนี้

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    คำสั่งจะสร้างไฟล์ ./samples/envoy-config.yaml

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

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

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

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

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

  1. กำหนดค่าผลิตภัณฑ์ API และรับคีย์ API ตามที่อธิบายไว้ในวิธีรับคีย์ API
  2. เรียกใช้บริการ httpbin โดยไม่มีคีย์ API:
    curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
    

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

    curl -i http://localhost:8080/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
  3. เรียก API โดยใช้คีย์:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/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"
      }
    }

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

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

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