คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
ตัวอย่างนี้แสดงวิธีใช้ Apigee Adapter สำหรับ Envoy กับ Apigee Edge
ข้อกำหนดเบื้องต้น
ก่อนเริ่มใช้งาน |
---|
|
ภาพรวม
ตัวอย่างนี้อธิบายวิธีใช้อะแดปเตอร์ Apigee สำหรับ Envoy กับ Apigee Edge สำหรับระบบคลาวด์สาธารณะ การเรียกพร็อกซี API จะส่งผ่าน Envoy ที่ทำงานเป็นแอปพลิเคชันเนทีฟด้วย Edge ซึ่งให้บริการการจัดการ API ผ่านบริการระยะไกลของ Apigee สำหรับ Envoy
รูปต่อไปนี้แสดงสถาปัตยกรรมพื้นฐานสำหรับการผสานรวม Apigee Edge
พร็อกซี Envoy และบริการระยะไกลทำงานภายใน Envoy จัดการการรับส่งข้อมูล API ไปยังและจากบริการเป้าหมาย รวมถึงสื่อสารกับบริการระยะไกล นอกจากนี้บริการระยะไกลยังสื่อสารกับ Apigee Edge Cloud เพื่อดึงข้อมูลผลิตภัณฑ์ API และพร็อกซีอีกด้วย
การจัดสรร Apigee Edge
ในขั้นตอนนี้ คุณจะใช้ Remote Service CLI เพื่อจัดสรรอะแดปเตอร์ Apigee สำหรับชิ้นงาน Envoy ให้กับ Apigee Edge คำสั่งการจัดสรรจะทำให้พร็อกซี API ใช้งานได้กับ Apigee Edge เช่นกัน รวมถึงตั้งค่าใบรับรองใน Apigee และสร้างข้อมูลเข้าสู่ระบบที่บริการระยะไกลจะใช้เพื่อเชื่อมต่อจากระบบของคุณกับ Apigee อย่างปลอดภัย
- ไปที่ไดเรกทอรี
$CLI_HOME
:cd $CLI_HOME
- สร้างตัวแปรสภาพแวดล้อมต่อไปนี้ ระบบจะใช้ตัวแปรเหล่านี้เป็นพารามิเตอร์ในสคริปต์การจัดสรร
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 ของคุณ - ใช้คำสั่งต่อไปนี้เพื่อจัดสรรพร็อกซีบริการระยะไกลบน 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
ค่าคีย์และข้อมูลลับจะใช้เพื่อตรวจสอบคำขอจากพร็อกซีบริการระยะไกลไปยัง 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
- ดาวน์โหลดไบนารี Envoy หรือสร้างคีย์ดังกล่าว หรือใช้ Docker
- เรียกใช้ Envoy โดยใช้ไฟล์การกำหนดค่าตัวอย่างที่ตั้งค่าไว้สำหรับบริการ
httpbin.org
:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
ทดสอบการติดตั้ง
- โทรหาบริการ
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
- กำหนดค่าผลิตภัณฑ์ API และรับคีย์ API ตามที่อธิบายไว้ในวิธีรับคีย์ API
- เรียก 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 ที่ข้อมูลอ้างอิง