מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
הדוגמה הזו ממחישה איך להשתמש במתאם Apigee ל-Envoy עם Apigee Edge.
דרישות מוקדמות
לפני שמתחילים: |
---|
|
סקירה כללית
בדוגמה הזו נסביר איך משתמשים ב-Apigee Adapter for Envoy עם Apigee Edge for Public Cloud. API קריאות לשרת proxy עוברות דרך Envoy שפועל כאפליקציית נייטיב עם Edge שמספק API שירותי ניהול באמצעות שירות Apigee Remote עבור Envoy.
באיור הבא מוצגת הארכיטקטורה הבסיסית של השילוב עם Apigee Edge:
שרת proxy של Envoy ושירות מרוחק פועלים באופן מקומי. Envoy מטפל בתנועת ה-API לשירות היעד וממנו ומתקשרים עם שירות מרוחק. השירות המרוחק גם מתקשר עם Apigee Edge Cloud כדי לאחזר מידע על מוצר API ושרת proxy.
הקצאה של Apigee Edge
בשלב הזה משתמשים ב-CLI של שירות מרוחק כדי להקצות נכסי Apigee Adapter לנכסי Envoy ל-Apigee Edge. הפקודה של ניהול התצורה פורסת שרת proxy ל-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. - מריצים את הפקודה הבאה כדי להקצות את שרת ה-proxy של השירות המרוחק ב-Apigee Edge:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
כאשר
$MFA
הוא אסימון הרשאה רב-שלבי של Apigee. - בודקים את התוכן של הקובץ
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
המפתח והערכים הסודיים משמשים לאימות הבקשות משרת ה-proxy של השירות המרוחק אל Apigee Edge.
הפעלת השירות מרחוק של Apigee לשירות Envoy
אפשר להריץ את השירות Remote גם בתור קובץ בינארי מקורי או ב-Docker.
הפעלת השירות באופן מקורי
מריצים את הקובץ הבינארי של השירות באמצעות קובץ התצורה שנוצר על ידי הפקודה להקצאת הרשאות ידנית:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
הפעלת השירות ב-Docker
תמונות Docker פורסמו עם תגי גרסה. כדי להתקין את האפליקציה הזו, צריך להשתמש בגרסה העדכנית. יש תוכלו לבחור מבין שלוש וריאציות של תמונות:
גרסה | תמונה |
---|---|
Google Distroless | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
Ubuntu עם קריפטו משעמם | 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
הקבצים הבאים הם פלט של הספרייה
./samples
:ls samples envoy-config.yaml
מידע נוסף זמין בקטע הפקודה 'טעימות'.
התקנה והפעלה של שרת ה-proxy של Envoy
כדי להתקין ולהפעיל את שרת ה-proxy של Envoy, פועלים לפי השלבים הבאים:
- מורידים קובץ בינארי של Envoy או ליצור אותו, או להשתמש ב-Docker.
- מריצים את Envoy באמצעות קובץ תצורה לדוגמה שיצרתם בעבר לשירות
httpbin.org
:envoy -c $CLI_HOME/samples/envoy-config.yaml
בדיקת ההתקנה
- התקשרות אל
httpbin
service: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
עוד כמה פעמים כדי להפעיל את המכסה. כשהמכסה עומדת להיגמר, תתקבל שגיאת HTTP 403 בסטטוס 403 הוחזרו. - לגשת ל-Apigee Analytics בממשק המשתמש של Edge. עוברים אל ניתוח > מדדי API > API ביצועים של שרת proxy.
- ליצור אסימוני JWT ולהשתמש בהם לאימות קריאות ל-API.
- שימוש ב-CLI כדי לנהל, ליצור אסימונים ולשלוט בקישורים. פרטים על CLI זמינים בחומר העזר.