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

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

ตัวอย่างนี้แสดงวิธีใช้ Apigee Adapter สําหรับ 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 สำหรับบริการ 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

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