การใช้อะแดปเตอร์ 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

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

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

การจัดสรร 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-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. ตรวจสอบเนื้อหาของไฟล์ config.yaml ซึ่งควรมีลักษณะดังนี้
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

    ค่าคีย์และข้อมูลลับจะใช้เพื่อตรวจสอบคำขอจากพร็อกซีบริการระยะไกลไปยัง Apigee Edge

เรียกใช้บริการระยะไกล Apigee สำหรับบริการ Envoy

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

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

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

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

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

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

ความหลากหลาย รูปภาพ
ขูด google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu ที่มี Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

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

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

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

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

  1. ดาวน์โหลดไบนารี Envoy หรือสร้างคีย์ดังกล่าว หรือใช้ Docker
  2. เรียกใช้ Envoy โดยใช้ไฟล์การกำหนดค่าตัวอย่างที่ตั้งค่าไว้สำหรับบริการ httpbin.org:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.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"
      }
    }

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

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

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