คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
ตัวอย่างนี้แสดงวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge
ข้อกำหนดเบื้องต้น
| ก่อนเริ่มใช้งาน |
|---|
|
|
ภาพรวม
ตัวอย่างนี้อธิบายวิธีใช้ Apigee Adapter for Envoy กับ Apigee Edge สำหรับระบบคลาวด์สาธารณะ การเรียกพร็อกซี 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 - เรียกใช้คำสั่งต่อไปนี้เพื่อจัดเตรียมพร็อกซีบริการระยะไกลใน Apigee Edge:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - ตรวจสอบเนื้อหาของไฟล์
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 Remote Service for Envoy
คุณสามารถเรียกใช้ Remote Service เป็นไบนารีเนทีฟ หรือใน Docker ก็ได้
เรียกใช้บริการแบบเนทีฟ
เรียกใช้ไบนารีของบริการด้วยไฟล์การกำหนดค่าที่คำสั่งการจัดเตรียมสร้างขึ้น
$CLI_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
เรียกใช้บริการใน Docker
ระบบจะเผยแพร่รูปภาพ Docker พร้อมแท็กเวอร์ชัน สำหรับการติดตั้งนี้ ให้ใช้เวอร์ชันล่าสุด โดยมีรูปภาพ 3 รูปแบบให้เลือกดังนี้
| ความหลากหลาย | รูปภาพ |
|---|---|
| Google distroless | 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
วิธีสร้างตัวอย่าง
- ไปที่ไดเรกทอรี
$CLI_HOME เรียกใช้คำสั่งนี้เพื่อสร้างไฟล์
./apigee-remote-service-cli samples create --template native -c ./config.yaml
ระบบจะส่งออกไฟล์ต่อไปนี้ไปยังไดเรกทอรี
./samplesls samples envoy-config.yaml
ดูข้อมูลเพิ่มเติมได้ที่คำสั่ง Samples
ติดตั้งและเรียกใช้พร็อกซี Envoy
ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งและเรียกใช้พร็อกซี Envoy
- ดาวน์โหลดไบนารี Envoy หรือ สร้าง หรือใช้ Docker
- เรียกใช้ Envoy โดยใช้ไฟล์การกำหนดค่าตัวอย่างที่คุณสร้างไว้ก่อนหน้านี้สำหรับบริการ
httpbin.orgenvoy -c $CLI_HOME/samples/envoy-config.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 สถานะ 403 - เข้าถึง Apigee Analytics ใน UI ของ Edge ไปที่วิเคราะห์ > เมตริก API > API ประสิทธิภาพของพร็อกซี
- สร้างและใช้ โทเค็น JWT เพื่อตรวจสอบสิทธิ์การเรียก API
- ใช้ CLI เพื่อจัดการ สร้างโทเค็น และควบคุมการผูก ดูรายละเอียด CLI ได้ที่ข้อมูลอ้างอิง