כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
הדוגמה הזו מדגימה איך להשתמש ב-Apigee Adapter ל-Envoy עם Apigee Edge.
דרישות מוקדמות
לפני שמתחילים: |
---|
|
סקירה כללית
בדוגמה הזו מוסבר איך להשתמש ב-Apigee Adapter ל-Envoy עם Apigee Edge לענן הציבורי. קריאות לשרת ה-API עוברות דרך Envoy שפועלת כאפליקציה מקורית, כש-Edge מספקת שירותי ניהול API דרך Apigee Remote Service for Envoy.
הקצאה של Apigee Edge
בשלב הזה, צריך להשתמש ב-Remote Service CLI כדי להקצות ל-Apigee Edge את Apigee Adapter לנכסי Envoy. הפקודה פורסת שרת 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:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
כשמשדרגים, צריך להשתמש בפקודה הזו עם הדגל
--force-proxy-install
כדי להקצות את Apigee:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --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 ...
הערכים של המפתח והסוד משמשים לאימות הבקשות משרת ה-Proxy של השירות המרוחק אל Apigee Edge.
הפעלת השירות המרוחק של Apigee לשירות Envoy
אפשר להריץ את השירות המרוחק כבינארי מקורי או ב-Docker.
הפעלת השירות באופן מקורי
מפעילים את הקובץ הבינארי של השירות באמצעות קובץ התצורה שנוצר על ידי פקודת ההקצאה:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
הפעלת השירות ב-Docker
תמונות Docker מפורסמות עם תגי גרסה. בהתקנה הזו, צריך להשתמש בגרסה העדכנית. אפשר לבחור תמונה מתוך שלוש גרסאות:
גרסה | תמונה |
---|---|
Google ללא הפרעות | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu עם הצפנה משעממת | google/apigee-envoy-adapter:v2.0.0-boring |
לדוגמה, כדי להריץ תמונת גירוד עם config.yaml
מקומי שזמין בתור /config.yaml
דרך תושבת לעוצמת הקול, משתמשים בפקודה הזו:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
יצירת קובצי תצורה לדוגמה
יוצרים קובץ תצורה של Envoy באמצעות ה-CLI:
- חשוב לוודא שאתם נמצאים בספרייה
$ENVOY_HOME
. - הצגת תבניות של הגדרות אישיות:
$CLI_HOME/apigee-remote-service-cli samples templates
מריצים את הפקודה לדוגמה. ב-TEMPLATE, צריך להחליף את אחת מהתבניות הנתמכות של Envoy:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
הפקודה יוצרת את הקובץ
./samples/envoy-config.yaml
.
מידע נוסף מופיע בקטע הפקודה 'טעימות'.
התקנה והפעלה של שרת ה-proxy של Envoy
כדי להתקין ולהפעיל את שרת ה-proxy של Envoy:
- מורידים בינארי של Envoy או יוצרים אותו, או משתמשים ב-Docker.
- מריצים את Envoy באמצעות קובץ תצורה לדוגמה שיצרתם קודם לכן עבור השירות
httpbin.org
:envoy -c ./samples/envoy-config.yaml
בדיקת ההתקנה
- מגדירים מוצר של API ומקבלים מפתח API, כמו שמוסבר במאמר איך מקבלים מפתח API.
- מפעילים את השירות
httpbin
בלי מפתח API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
השירות מנוהל עכשיו על ידי Apigee, ומכיוון שלא סיפקת מפתח API, הקריאה מחזירה את השגיאה הבאה.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" 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 באמצעות המפתח:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -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
עוד כמה פעמים כדי להפעיל את המכסה. כשהמכסה ייגמרת, תוחזר שגיאה בסטטוס 403 של HTTP. - אפשר לגשת ל-Apigee Analytics בממשק המשתמש של Edge. עוברים אל ניתוח > מדדי API > ביצועים בשרת proxy ל-API.
- ליצור אסימוני JWT ולהשתמש בהם כדי לאמת קריאות ל-API.
- אפשר להשתמש ב-CLI כדי לנהל אסימונים, ליצור אסימונים ולשלוט בקישורים. לפרטים על ה-CLI, עיינו בחומר העזר.