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

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

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

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

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

ภาพรวม

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

จัดสรร 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

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

    หากจะอัปเกรด ให้ใช้คําสั่งนี้พร้อม Flag --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 distroless 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. เรียกใช้คำสั่ง samples สำหรับ TEMPLATE ให้ใช้เทมเพลต Envoy ที่รองรับรายการใดรายการหนึ่งต่อไปนี้

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

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

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

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

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

  1. ดาวน์โหลด Binary ของ 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"
      }
    }

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

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

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