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

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

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

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

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

ภาพรวม

ตัวอย่างนี้อธิบายวิธีใช้อะแดปเตอร์ Apigee สำหรับ Envoy กับ Apigee Edge สำหรับระบบคลาวด์สาธารณะ API การเรียกพร็อกซีจะไหลผ่าน Envoy ซึ่งทำงานเป็นแอปพลิเคชันเนทีฟโดยมี Edge ที่ให้บริการ API ผ่าน Apigee Remote Service สำหรับ 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 --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 Remote Service สำหรับ Envoy

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

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

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

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

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

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

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

ตัวอย่างเช่น หากต้องการเรียกใช้รูปภาพสำหรับขูดกับ 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"
      }
    }

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

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

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