คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ตัวอย่างนี้แสดงวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge
ข้อกำหนดเบื้องต้น
| ก่อนเริ่มใช้งาน |
|---|
|
|
ภาพรวม
ตัวอย่างนี้อธิบายวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge สำหรับ Public Cloud การเรียกพร็อกซี API จะไหลผ่าน Envoy ที่ทำงานเป็นแอปพลิเคชันแบบเนทีฟ โดย Edge จะให้บริการการจัดการ API ผ่าน Apigee Remote Service for Envoy
รูปภาพต่อไปนี้แสดงสถาปัตยกรรมพื้นฐานสำหรับการผสานรวม Apigee Edge

พร็อกซี Envoy และ Remote Service กำลังทำงานในเครื่อง Envoy จัดการการรับส่งข้อมูล API ไปยังและจากบริการเป้าหมาย และสื่อสารกับ Remote Service นอกจากนี้ Remote Service ยังสื่อสาร กับ Apigee Edge Cloud เพื่อดึงข้อมูลผลิตภัณฑ์ API และพร็อกซี
จัดเตรียม Apigee Edge
ในขั้นตอนนี้ คุณจะใช้ Remote Service CLI เพื่อจัดเตรียมพร็อพเพอร์ตี้ Apigee Adapter for Envoy ให้กับ Apigee Edge คำสั่งการจัดเตรียมจะทำให้ใช้งานได้พร็อกซี API กับ Apigee Edge, รวมถึงตั้งค่าใบรับรองใน Apigee และสร้างข้อมูลเข้าสู่ระบบที่ Remote Service จะใช้เพื่อเชื่อมต่อจากระบบของคุณกับ Apigee อย่างปลอดภัย
- ไปที่ไดเรกทอรี
$CLI_HOMEcd $CLI_HOME
- สร้างตัวแปรสภาพแวดล้อมต่อไปนี้ ระบบจะใช้ตัวแปรเหล่านี้เป็น
พารามิเตอร์กับสคริปต์การจัดเตรียม
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordโดยที่
ตัวแปร คำอธิบาย organization_name ชื่อองค์กร Apigee environment_name ชื่อสภาพแวดล้อมในองค์กร your_apigee_username ชื่อผู้ใช้บัญชี Apigee โดยปกติแล้วชื่อผู้ใช้จะเป็นอีเมล your_apigee_password รหัสผ่าน Apigee - เรียกใช้คำสั่งต่อไปนี้เพื่อจัดเตรียมพร็อกซี Remote Service ใน Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - ตรวจสอบเนื้อหาของไฟล์
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
ค่าคีย์และค่าลับใช้เพื่อตรวจสอบคำขอจากพร็อกซี Remote Service ไปยัง Apigee Edge
เรียกใช้บริการ Apigee Remote Service for Envoy
คุณสามารถเรียกใช้ Remote Service เป็นไบนารีเนทีฟ หรือใน Docker ก็ได้
เรียกใช้บริการแบบเนทีฟ
เรียกใช้ไบนารีของบริการด้วยไฟล์กำหนดค่าที่คำสั่งการจัดเตรียมส่งออก
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
เรียกใช้บริการใน Docker
ระบบจะเผยแพร่รูปภาพ Docker พร้อมแท็กการเผยแพร่ สำหรับการติดตั้งนี้ ให้ใช้เวอร์ชันล่าสุด โดยมีรูปภาพ 3 รูปแบบให้เลือก ดังนี้
| ความหลากหลาย | รูปภาพ |
|---|---|
| scratch | google/apigee-envoy-adapter:v1.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
| Ubuntu with 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
- ดาวน์โหลดไบนารี Envoy หรือ สร้าง หรือใช้ Docker
- เรียกใช้ Envoy โดยใช้ไฟล์กำหนดค่าตัวอย่างที่ตั้งค่าไว้สำหรับบริการ
httpbin.orgenvoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
ทดสอบการติดตั้ง
- เรียกใช้บริการ
httpbincurl -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
- กำหนดค่าผลิตภัณฑ์ API และรับคีย์ API ตามที่อธิบายไว้ใน หัวข้อวิธีรับคีย์ API.
- ทำการเรียก API โดยใช้คีย์
export APIKEY=YOUR_API_KEYcurl -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 Analytics ใน UI ของ Edge ไปที่วิเคราะห์ > เมตริก API > API ประสิทธิภาพของพร็อกซี
- สร้างและใช้ โทเค็น JWT เพื่อตรวจสอบสิทธิ์การเรียก API
- ใช้ CLI เพื่อจัดการ สร้างโทเค็น และควบคุมการผูก ดูรายละเอียด CLI ได้ที่ข้อมูลอ้างอิง