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

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

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

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

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

ภาพรวม

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

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

มุมมองระดับสูงของ Envoy Adapter ที่ทำงานแบบเนทีฟเพื่อสื่อสารกับ Apigee Edge Cloud ซึ่งรวมถึงแพลตฟอร์มการจัดการ แพลตฟอร์มรันไทม์ และบริการ GCP

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

จัดสรร Apigee Edge

ในขั้นตอนนี้ คุณจะใช้ 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-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 ก็ได้

เรียกใช้บริการตั้งแต่ต้น

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

$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

เช่น หากต้องการเรียกใช้อิมเมจสคริปต์ที่ใช้ 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
    

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