הגדרה ופריסה של סביבות

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

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

סביבה היא הקשר של זמן ריצה להרצת פרוקסי של API ורכיבי Shared Flow שרוצים לפרוס. צריך לפרוס את הפרוקסי של ה-API ואת רכיבי ה-Shared Flow בסביבה אחת או יותר כדי שאפשר יהיה לגשת אליהם לצורך בדיקה. מידע נוסף על סביבות זמין במאמר מידע על סביבות וקבוצות סביבות.

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

הגדרת סביבה

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

כדי להגדיר סביבה, יוצרים את הסביבה ועורכים את ההגדרה שמופיעה בטבלה הבאה.

הגדרות אישיות תיאור
מסכות לניפוי באגים (debugmasks.json) הגדרת תצורות של מסכות כדי להסתיר נתונים ספציפיים בסשנים של מעקב וניפוי באגים.
פריסות (deployments.json) הגדרת שרתי proxy ל-API ותהליכים משותפים בפריסה.
Flow hooks (flowhooks.json) מצרפים זרימות משותפות לנקודות חיבור של זרימות כדי שהן יופעלו באותו מקום לכל ה-API proxies שנפרסו בסביבה.
שרתי יעד (targetservers.json) כדי לתמוך באיזון עומסים ובמעבר לגיבוי במקרים של כשלים בכמה מופעים של שרתים בעורף, צריך להפריד בין נקודות הקצה הקונקרטיות לבין נקודות הקצה של היעד.
חנויות מרכזיות (keystores.json) מוסיפים תמיכה ב-TLS לנקודות הקצה של היעד ולשרתי היעד.

בנוסף, אם אתם משתמשים בכללי מדיניות שדורשים משאבים, אתם יכולים לנהל משאבים ברמת הסביבה, לפי הצורך.

יצירת סביבה

כדי ליצור סביבה ב-Apigee ב-Cloud Code:

  1. מבצעים אחת מהפעולות הבאות:

    • מציבים את הסמן מעל התיקייה environments בסביבת העבודה של Apigee ולוחצים על יצירת סמל לסביבה.

      הסימן + מוצג כשמציבים את הסמן מעל התיקייה environments

    • בוחרים באפשרות תצוגה > לוח פקודות כדי לפתוח את לוח הפקודות ובוחרים באפשרות Cloud Code: Create Apigee environment (Cloud Code: יצירת סביבת Apigee).

    ייפתח האשף Create environment.

  2. מזינים שם לסביבה ולוחצים על Enter.

הסביבה נוספת לתיקייה environments בקטע Apigee:

תיקיית Environments עם הקבצים deployments.json,‏ flowhooks.json ו-targetservers.json

מגדירים את הסביבה, כמו שמתואר בקטעים הבאים.

הגדרת מסכות ניפוי באגים (debugmask.json)

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

<description>**********</description>

מידע נוסף זמין במאמר אנונימיזציה של נתונים רגישים.

כדי להגדיר מסכות ניפוי באגים, מעדכנים את הקובץ debugmask.json על ידי עריכה ישירה של הקובץ.

בהמשך מופיעה דוגמה למבנה הבסיסי של הגדרת מסכה בפורמט JSON. מידע נוסף על שדות הגדרת המסכה שמוצגים בדוגמה זמין במאמר DebugMask.

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

הגדרת הפריסות (deployments.json)

מגדירים את שרתי ה-proxy של ה-API ואת התהליכים המשותפים שרוצים לכלול בפריסה.

כדי להגדיר את הפריסות, מעדכנים את הקובץ deployments.json באמצעות אשף ההגדרה או על ידי עריכה ישירה של הקובץ.

כדי להגדיר את הפריסות באמצעות אשף ההגדרה:

  1. ממקמים את הסמן מעל הקובץ deployments.json של הסביבה ולוחצים על סמל של אשף להגדרת פריסה.

    סמל ההגדרות מוצג כשמציבים את הסמן מעל התיקייה deployments.json

  2. פועלים לפי השלבים באשף ההגדרה כדי לבחור את הפריסות ולאכלס אוטומטית את השדות בקובץ deployments.json. הקובץ deployments.json נפתח בכלי העריכה.
  3. עורכים את ההגדרות לפי הצורך.
  4. בוחרים באפשרות קובץ > שמירה או לוחצים על ‎⌘S כדי לשמור את השינויים.

בדוגמה הבאה מוגדר ה-Deployment (פריסה) כך שתכלול את ה-proxy ל-API של helloworld ואת התהליכים המשותפים mysharedflow ו-hw-sharedflow:

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

הגדרת חשבונות שירות עם פריסות של שרת proxy וזרימות משותפות

יכול להיות שיהיה צורך לשייך חשבון שירות לפריסה של שרתי proxy של API שמסתמכים על שירות של Google כקצה עורפי. Google Cloud איך משתמשים באימות של Google

כשעורכים את הקובץ deployments.json, אפשר לשייך את ה-proxy ל-API או את ה-shared flow לחשבון שירות Google Cloud . לדוגמה:

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}

בדוגמה הבאה מוצגת הגדרת פריסה שבה חשבונות שירות משויכים ל-proxy ל-API‏ helloworld ול-shared flow‏ mysharedflow, אבל ה-proxy‏ healthcheck וה-shared flow‏ hw-sharedflow לא משויכים לחשבון שירות:

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

מידע נוסף על הגדרת Apigee Emulator לבדיקת תכונות אימות של חשבון שירות ב-API Proxy.

צירוף תהליכי עבודה משותפים באמצעות ווים של תהליכי עבודה (flowhooks.json)

באמצעות flow hook, אתם מצרפים shared flow כך שהוא יופעל באותו מקום עבור כל ה-API proxy שנפרסו בסביבה ספציפית. כך מקבלים רצף לוגיקה שהוטמע ונפרס בנפרד, ולא מהווה חלק מקוד ההטמעה של שרת proxy ל-API. באופן ספציפי, אפשר לצרף רכיב SharedFlow במיקומים הבאים בתהליך של proxy ל-API:

  • לפני שנקודת קצה של proxy ל-API מופעלת (PreProxyFlowHook)
  • אחרי שנקודת הקצה של ה-proxy ל-API מופעלת ולפני שהתגובה נשלחת ללקוח (PostProxyFlowHook)
  • לפני שנקודת קצה של יעד מופעלת (PreTargetFlowHook)
  • אחרי שהתשובה הרצויה מופעלת (PostTargetFlowHook)

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

כדי לצרף תהליכים משותפים באמצעות ווים של תהליכים, צריך לעדכן את הקובץ flowhooks.json באמצעות אשף ההגדרה או על ידי עריכה ישירה של הקובץ.

כדי להגדיר את ה-hooks של התהליך באמצעות אשף ההגדרה:

  1. מעבירים את הסמן מעל הקובץ flowhooks.json של הסביבה ולוחצים על סמל של אשף להגדרת וו של תהליך.
  2. בוחרים את הזרימות המשותפות לצירוף במיקומים ספציפיים בזרימת ה-proxy ל-API, ומאכלסים אוטומטית שדות בקובץ flowhooks.json. הקובץ flowhooks.json נפתח בכלי העריכה.
  3. עורכים את ההגדרות לפי הצורך.
  4. בוחרים באפשרות קובץ > שמירה או לוחצים על ‎⌘S כדי לשמור את השינויים.

בדוגמה הבאה, התג mysharedflow מצורף לתג PreProxyFlowHook כדי שהוא יופעל לפני הרצה של נקודת קצה (endpoint) של proxy ל-API:

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }
}

הגדרת שרתי היעד (targetservers.json)

שרתי יעד (TargetServers) מפרידים בין כתובות URL קונקרטיות של נקודות קצה לבין הגדרות של נקודת קצה של יעד (TargetEndpoint). במקום להגדיר כתובת URL קונקרטית בהגדרה, אפשר להגדיר שרת יעד אחד או יותר עם שם. לאחר מכן, אפשר להפנות לכל שרת יעד לפי שם ב-HTTPConnection של TargetEndpoint.

מידע נוסף על שרתי יעד זמין בנושאים הבאים:

כדי להגדיר שרתי יעד, מעדכנים את הקובץ targetservers.json באמצעות אשף ההגדרות או על ידי עריכה ישירה של הקובץ. תיאור של השדות בקובץ targetservers.json מופיע במאמר Resource: TargetServer.

כדי להגדיר את שרתי היעד באמצעות אשף ההגדרה:

  1. מעבירים את הסמן מעל הקובץ targetservers.json של הסביבה ולוחצים על סמל של אשף להגדרת שרתי היעד.
  2. פועלים לפי השלבים באשף ההגדרה כדי להגדיר את שרת היעד ולאכלס אוטומטית את השדות בקובץ targetservers.json. הקובץ targetservers.json נפתח בכלי העריכה.
  3. עורכים את ההגדרות לפי הצורך.
  4. בוחרים באפשרות קובץ > שמירה או לוחצים על ‎⌘S כדי לשמור את השינויים.

בדוגמה הבאה מוסיפים שרת יעד חדש לסביבה:

[
  {
    "enabled": true,
    "name": "mytargetserver",
    "description": "My first target server",
    "host": "localhost",
    "port": 80
  }
]

בדוגמה הבאה מוגדר שרת יעד עם TLS הדדי באמצעות מאגרי מפתחות:

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

הגדרת מאגרי המפתחות (keystores.json)

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

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

כדי להגדיר מאגרי מפתחות:

  1. פותחים את הקובץ keystores.json של הסביבה בעורך. בקובץ יש שני רכיבים עיקריים
    • stores – מפה של שם מאגר המפתחות שנוסף והכינויים.
    • references – מפה של כל שמות ההפניות למאגר המפתחות ושם מאגר המפתחות המשויך.
  2. עורכים את ההגדרות לפי הצורך.
  3. בוחרים באפשרות קובץ > שמירה או לוחצים על ‎⌘S כדי לשמור את השינויים.

בדוגמה הבאה מוצג מאגר מפתחות mykeystore עם שני כינויים, mycert-alias ו-mykeycert-alias:

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

פריסת סביבה

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

כדי לפרוס סביבה:

  1. בקטע Apigee, מציבים את הסמן מעל התיקייה של הסביבה שרוצים לפרוס.
  2. לחץ על סמל הפריסה של סביבת Apigee.

    סמל הפריסה מוצג כשמציבים את הסמן מעל תיקייה של סביבת פיתוח

  3. אם פועלים כמה מאגרי תגים של Apigee Emulator, בוחרים את מאגר התגים שרוצים לפרוס בו את הסביבה.
  4. בוחרים את חבילת הבדיקה שרוצים לייצא עם הפריסה או בוחרים באפשרות פריסה ללא חבילת בדיקה.

    הצעה לייצא חבילת בדיקה

    אפשר לייצא משאבי בדיקה מאוחר יותר, כמו שמתואר במאמר ייצוא משאבי בדיקה ל-Apigee Emulator.

הסביבה נפרסת ומוצגת הודעה על הצלחה בכרטיסייה פלט.

האפליקציות שנפרסו מוצגות ב-Apigee Emulator:

Apigee Emulator showing deployed helloworld application and active test resources