פריסת proxy ל-API

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

אי אפשר להפעיל proxy ל-API לפני שמבצעים פריסה שלו. אחרי שיוצרים proxy ל-API חדש או מבצעים שינוי ב-proxy קיים, אפשר לפרוס אותו באשכול.

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

פריסת proxy ל-API

מבצעים פריסה של עדכון לשרת proxy ל-API, כמו שמתואר באחת מהשיטות הבאות.

ממשק המשתמש של Apigee

כדי לפרוס proxy ל-API:

  1. במסוף Google Cloud , נכנסים לדף Apigee > Proxy Development > API Proxies.

    מעבר אל API Proxies

  2. לוחצים על ה-proxy ל-API שרוצים לפרוס. ממשק המשתמש מציג את הדף סקירה כללית:

    פרטים על proxy ל-API, כולל סטטוס הפריסה לכל סביבה, פרטי נקודת הקצה של ה-proxy ופרטי נקודת הקצה של היעד.

  3. כדי לפרוס את השינויים, לוחצים על פריסה כדי להציג את תיבת הדו-שיח פריסה:

    נקודות קצה של יעד שנבחרו בכלי Proxy Explorer.

  4. מזינים את הפרטים הבאים:
    • תיקון: מספר התיקון של ה-proxy שרוצים לפרוס.
    • סביבה: הסביבה שבה רוצים לפרוס את ה-proxy.
    • חשבון שירות (אופציונלי): חשבון שירות בשביל ה-proxy.
  5. לוחצים על פריסה.

ממשק המשתמש מתחיל בתהליך הפריסה של הגרסה שנבחרה.

כשפורסים את ה-proxy, בעמודה Status בקטע Deployments מוצג סמל ירוק שמציין שהגרסה הראשונה של ה-proxy נפרסה.

סמל הסטטוס של שרת proxy שהופעל

Apigee API

בקטעים הבאים מופיעות דוגמאות לשימוש ב-Apigee API כדי לפרוס גרסאות של proxy ל-API ולראות את הפריסות בארגון.

אפשר לעיין גם במאמר בנושא הצגת סטטוס הפריסה.

יצירת דוח שינויים בהטמעה לפני ההטמעה

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

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments:generateDeployChangeReport" \
-X POST \
-H "Authorization: Bearer $TOKEN"

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

פריסת גרסה של proxy ל-API באמצעות ה-API

כדי לפרוס גרסה של proxy ל-API, משתמשים בקריאה הבאה ל-API:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

$TOKEN מוגדר כאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר איך מקבלים אסימון גישה מסוג OAuth 2.0. מידע על האפשרויות curl שבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl. תיאור של משתני הסביבה שבהם אפשר להשתמש מופיע במאמר בנושא הגדרת משתני סביבה לבקשות API של Apigee.

בדוגמה הבאה מוצג פלט התגובה. בדוגמה הזו, הגרסה 1 של ה-proxy ל-API‏ helloworld נפרסה בהצלחה בסביבה test:

{
  "environment": "test",
  "apiProxy": "helloworld",
  "revision": "1",
  "deployStartTime": "1559149080457"
}

מידע נוסף זמין במאמר פריסת גרסה של proxy ל-API.

הצגת פריסות באמצעות ה-API

כדי להציג רשימה של כל הפריסות של פרוקסי API ושל רכיבי Shared Flow בארגון, מזינים את הקריאה הבאה ל-API:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/deployments" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

$TOKEN מוגדר כאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר איך מקבלים אסימון גישה מסוג OAuth 2.0. מידע על האפשרויות curl שבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl. תיאור של משתני הסביבה שבהם אפשר להשתמש מופיע במאמר בנושא הגדרת משתני סביבה לבקשות API של Apigee.

בהמשך מופיעה דוגמה לתגובה. בדוגמה הזו, יש שלושה שרתי proxy של API שנפרסו, כולל helloworld שנפרס בקטע הקודם.

{
  "deployments": [
    {
      "environment": "test",
      "apiProxy": "helloworld",
      "revision": "1",
      "deployStartTime": "1559149080457"
    },
    {
      "environment": "test",
      "apiProxy": "weather",
      "revision": "1",
      "deployStartTime": "1558620435217"
    },
    {
      "environment": "test",
      "apiProxy": "testproxy",
      "revision": "2",
      "deployStartTime": "1558635113086"
    }
  ]
}

gcloud

בקטעים הבאים מופיעות דוגמאות לשימוש בפקודות של gcloud apigee CLI כדי לפרוס גרסאות של proxy ל-API ולפרט את הפריסות של הארגון.

אפשר לעיין גם במאמר בנושא הצגת סטטוס הפריסה.

מידע נוסף ותיאור של משתני הסביבה שמשמשים בדוגמאות זמינים במאמר תחילת העבודה עם gcloud ב-Apigee.

פריסת גרסה של proxy ל-API באמצעות ה-CLI של gcloud

כדי לפרוס גרסה של proxy ל-API, משתמשים בפקודה gcloud הבאה:

gcloud apigee apis deploy $REV --api=$API --environment=$ENV

בדוגמה הבאה מוצג פלט התגובה. בדוגמה הזו, הגרסה 1 של ה-proxy ל-API‏ helloworld נפרסה בהצלחה בסביבה test:

Using Apigee organization 'my-org'
apiProxy: helloworld
deployStartTime: '1598032332802'
environment: test
revision: '1'

מידע נוסף זמין במאמר פריסת תיקון של שרת proxy ל-API באמצעות CLI.

הצגת רשימה של פריסות באמצעות ה-CLI של gcloud

כדי לראות את כל הפריסות של פרוקסי API ושל רכיבי Shared Flow בארגון, משתמשים בפקודה gcloud הבאה:

gcloud apigee deployments list

בהמשך מופיעה דוגמה לתגובה. בדוגמה הזו, יש שלושה שרתי proxy של API שנפרסו, כולל helloworld שנפרס בקטע הקודם.

Using Apigee organization `my-org`
 - apiProxy: helloworld
   deployStartTime: 1598032332802
   environment: test
   revision: 1
 - apiProxy: weather
   deployStartTime: 1558620435217
   environment: test
   revision: 1
 - apiProxy: testproxy
   deployStartTime: 1558635113086
   environment: test
   revision: 2

מידע נוסף זמין במאמר רשימת פריסות CLI.

פתרון בעיות

אם אתם לא מצליחים לפרוס את ה-proxy ל-API, כדאי לבדוק אם אחד מהתרחישים הנפוצים הבאים רלוונטי.

הגבלות על שמות של קבוצות סביבות

אם שם קבוצת הסביבות לא עומד בהגבלות על שמות, הפריסה של ה-Proxy תיכשל. במקרים מסוימים, אפשר ליצור קבוצת סביבות ולהוסיף לה סביבות בלי לעמוד בהגבלות האלה. עם זאת, זה ימנע את פריסת ה-Proxy.

במאמר יצירת קבוצות סביבות מפורטות הנחיות והגבלות למתן שמות.

הסביבה נוצרה עם שם סביבה שכבר נעשה בו שימוש

אם תיצרו סביבה עם שם זהה לשם של סביבה שנמחקה בעבר, ה-proxy לא יופעל. לדוגמה, אם יצרתם סביבה בשם prod-1 אחרי שיצרתם ומחקתם בעבר סביבת prod-1, תצטרכו להסיר אותה. כדי לפתור את הבעיה:

  1. מנתקים את סביבת prod-1 מקבוצת הסביבות באמצעות API.
  2. מוחקים את סביבת prod-1 באמצעות API.
  3. יוצרים סביבה חדשה. לדוגמה, prod-2.
  4. מצרפים את סביבת prod-2 החדשה לקבוצת הסביבות באמצעות API.