כרגע מוצג התיעוד של 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:
שרת proxy של Envoy ושירות מרוחק פועלים באופן מקומי. Envoy מטפל בתנועת API אל שירות היעד וממנו, ומתקשר עם השירות Remote. השירות המרוחק מתקשר גם עם Apigee Edge Cloud כדי לאחזר מידע על מוצרי API ועל שרת proxy.
הקצאה של 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-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
אפשר להריץ את השירות המרוחק כבינארי מקורי או ב-Docker.
הפעלת השירות באופן מקורי
מפעילים את הקובץ הבינארי של השירות באמצעות קובץ התצורה שנוצר על ידי פקודת ההקצאה:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
הפעלת השירות ב-Docker
תמונות Docker מפורסמות עם תגי גרסה. בהתקנה הזו, צריך להשתמש בגרסה העדכנית. אפשר לבחור תמונה מתוך שלוש גרסאות:
גרסה | תמונה |
---|---|
Google ללא הפרעות | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
Ubuntu עם הצפנה משעממת | google/apigee-envoy-adapter:v1.1.0-boring |
לדוגמה, כדי להריץ תמונת גירוד עם 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
: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
עוד כמה פעמים כדי להפעיל את המכסה. כשהמכסה ייגמרת, תוחזר שגיאה בסטטוס 403 של HTTP. - אפשר לגשת ל-Apigee Analytics בממשק המשתמש של Edge. עוברים אל ניתוח > מדדי API > ביצועים בשרת proxy ל-API.
- ליצור אסימוני JWT ולהשתמש בהם כדי לאמת קריאות ל-API.
- אפשר להשתמש ב-CLI כדי לנהל אסימונים, ליצור אסימונים ולשלוט בקישורים. לפרטים על ה-CLI, עיינו בחומר העזר.