שימוש במתאם Apigee ל-Envoy עם Apigee Edge

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

הדוגמה הזו ממחישה איך להשתמש במתאם Apigee ל-Envoy עם Apigee Edge.

דרישות מוקדמות

לפני שמתחילים:

סקירה כללית

בדוגמה הזו מוסבר איך להשתמש ב-Apigee Adapter ל-Envoy עם Apigee Edge לענן ציבורי. API קריאות לשרת proxy עוברות דרך Envoy שפועל כאפליקציית נייטיב עם Edge שמספק API שירותי ניהול באמצעות שירות Apigee Remote עבור Envoy.

הקצאה של Apigee Edge

בשלב הזה משתמשים ב-CLI של שירות מרוחק כדי להקצות נכסי Apigee Adapter לנכסי Envoy ל-Apigee Edge. הפקודה של ניהול התצורה פורסת שרת proxy ל-API ל-Apigee Edge, וגם מגדיר אישור ב- Apigee ויצירה של פרטי כניסה שבהם השירות המרוחק ישתמש כדי: להתחבר מהמערכת ל-Apigee.

  1. נכנסים לספרייה $CLI_HOME:
    cd $CLI_HOME
  2. יוצרים את משתני הסביבה הבאים. המשתנים האלה ישמשו בתור פרמטרים לסקריפט להקצאת הרשאות ידנית:
    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.
  3. מריצים את הפקודה הבאה כדי להקצות את שרת ה-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
  4. בודקים את התוכן של הקובץ 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 Remote עבור שירות Envoy

אפשר להריץ את השירות Remote גם בתור קובץ בינארי מקורי או ב-Docker.

הפעלת השירות באופן מקורי

מריצים את הקובץ הבינארי של השירות באמצעות קובץ התצורה שנוצר על ידי הפקודה להקצאת הרשאות ידנית:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

הרצת השירות ב-Docker

תמונות Docker פורסמו עם תגי גרסה. כדי להתקין את האפליקציה הזו, צריך להשתמש בגרסה העדכנית. יש תוכלו לבחור מבין שלוש וריאציות של תמונות:

גרסה תמונה
Google Distroless 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:

  1. חשוב לוודא שאתם נמצאים בספרייה $ENVOY_HOME.
  2. הצגת רשימה של תבניות התצורה הזמינות:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. מפעילים את הפקודה Samples. ב-TEMPLATE, מחליפים את אחת מתבניות Envoy הנתמכות:

    $CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml

    הפקודה יוצרת את הקובץ ./samples/envoy-config.yaml.

מידע נוסף זמין בקטע הפקודה 'טעימות'.

התקנה והפעלה של שרת ה-proxy של Envoy

כדי להתקין ולהפעיל את שרת ה-proxy של Envoy, פועלים לפי השלבים הבאים:

  1. מורידים קובץ בינארי של Envoy או ליצור אותו, או להשתמש ב-Docker.
  2. מריצים את Envoy באמצעות קובץ תצורה לדוגמה שיצרתם בעבר לשירות httpbin.org:
    envoy -c ./samples/envoy-config.yaml

בדיקת ההתקנה

  1. מגדירים מוצר API ומקבלים מפתח API, כמו שמוסבר ב: איך לקבל מפתח API
  2. קוראים לשירות 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
  3. מבצעים קריאה ל-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 עוד כמה פעמים כדי להפעיל את המכסה. כשהמכסה עומדת להיגמר, תתקבל שגיאת HTTP 403 בסטטוס 403 הוחזרו.
  • לגשת ל-Apigee Analytics בממשק המשתמש של Edge. עוברים אל ניתוח > מדדי API > API ביצועים של שרת proxy.
  • ליצור אסימוני JWT ולהשתמש בהם לאימות קריאות ל-API.
  • שימוש ב-CLI כדי לנהל, ליצור אסימונים ולשלוט בקישורים. פרטים על CLI זמינים בחומר העזר.