การใช้อะแดปเตอร์ 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 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-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml

    โดยที่ $MFA คือโทเค็นการให้สิทธิ์แบบหลายปัจจัยของ Apigee

  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 รูปแบบให้เลือกดังนี้

ความหลากหลาย รูปภาพ
โหมด Distroless ของ Google 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
    

    ตอนนี้ 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 ได้ที่ข้อมูลอ้างอิง