יצירת קובצי הגדרה בפורמט JSON לפריסות

כדי לפרוס גרסה של האפליקציה באמצעות Admin API, צריך להגדיר את פרטי התצורה של הגרסה באמצעות קובץ בפורמט JSON. אפשר ליצור את קובץ התצורה באופן ידני או להמיר קובץ app.yamlקיים.

ישנם שני חלקים ליצירת קובץ תצורה בפורמט JSON:

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

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

קודם צריך להעלות את כל הקבצים והמשאבים של האפליקציה לדלי Cloud Storage, לפני שתוכל ליצור את קובץ התצורה app.json.

יצירה ידנית של קובץ התצורה בפורמט JSON

אם אתם צריכים ליצור את קובץ התצורה באופן ידני, למשל אם האפליקציה שלכם לא כוללת app.yaml או שאפליקציית Java הקיימת שלכם משתמשת בקובץ appengine-web.xml, תוכלו לפעול לפי השלבים הבאים:

כדי ליצור באופן ידני את קובץ התצורה app.json לפריסת האפליקציה באמצעות Admin API:

  1. יוצרים שם קובץ app.json.
  2. משתמשים בפרטי ההגדרה שמופיעים באוסף apps.services.versions כדי להגדיר את הגרסה שרוצים לפרוס.
  3. משתמשים בתבנית שבקטע 'הגדרת deployment' כדי לציין את כל הקבצים והמשאבים שרוצים לפרוס מהקטגוריה של Cloud Storage.

בקטע דוגמה שבהמשך יש מידע שיעזור לכם ליצור את קובץ התצורה app.json.

המרת קובץ app.yaml לפורמט JSON

אפשר להשתמש בכלי convert_yaml.py כדי להמיר קובץ app.yaml קיים וליצור ממנו גרסת app.json.

אם קיים קובץ app.yaml, שבו אתם משתמשים בדרך כלל כדי לפרוס גרסאות של האפליקציה באופן ידני, אתם יכולים לשמור את המידע הזה על ידי המרת הגדרות התצורה האלה לפורמט JSON.

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

מורידים ומתקינים את הכלי convert_yaml.py, כולל הדרישות שצוינו.

המרת קובצי YAML באמצעות הכלי convert_yaml.py

כדי להמיר קובץ app.yaml באמצעות הכלי convert_yaml.py:

  1. מאתרים את נתיב הספרייה של app.yaml ורושמים אותו.

    דוגמה:

    cd root/apps-container/my-application/
    

    כאשר app.yaml של אפליקציית example-python-app.py עשוי להיראות כך:

    service: default
    version: v1
    runtime: python27
    threadsafe: true
    
    handlers:
    - url: /.*
      script: example-python-app.py
    
  2. עוברים לספרייה המקומית שבה הורדתם את הכלי convert_yaml.py, לדוגמה:

    cd root/tools/appengine-config-transformer
    
  3. כדי ליצור את הקובץ app.json מהקובץ app.yaml, מפעילים את הכלי convert_yaml.py:

    python ./convert_yaml.py [DIRECTORY_PATH]/app.yaml > [DIRECTORY_PATH]/app.json
    

    [DIRECTORY_PATH] הוא נתיב הספרייה לקובץ app.yaml.

    גרסת JSON (app.json) של קובץ app.yaml נוצרת בספרייה [DIRECTORY_PATH].

  4. מוודאים שהמזהה של הגרסה מוגדר בקובץ התצורה app.json.

    אם בקובץ app.yaml לא מופיע הרכיב version: [VERSION_NAME], הרכיב "id": [VERSION_NAME] לא ייכלל בקובץ app.json אחרי ההמרה. לדוגמה, אם רוצים להגדיר את מזהה הגרסה ל-v1, צריך להוסיף את השורה הבאה לקובץ app.json באופן ידני:

    "id": "v1",
    
  5. משתמשים בתבנית שבקטע הגדרת deployment כדי לציין את כל הקבצים והמשאבים של האפליקציה שרוצים לפרוס.

בקטע דוגמה שבהמשך יש מידע שיעזור לכם ליצור את קובץ התצורה app.json.

הגדרת הקטע deployment

כדי ליצור deployment section בקובץ התצורה app.json ולהגדיר באופן ידני את כל המשאבים שנמצאים בקטגוריה של Cloud Storage, משתמשים במידע העזר בdeployment section של אוסף apps.services.versions. אם אתם מגדירים קבצים נפרדים, אתם יכולים להשתמש בתבנית הבאה:

"deployment": {
  "files": {
    "my-resource-file1": {
      "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/my-application/my-resource-file1"
    },
  }
},

כאשר my-resource-file1 מגדיר את שם הקובץ ואת הנתיב היחסי של הספרייה שבה רוצים לפרוס את הקובץ ב-App Engine.

קובץ app.json לדוגמה

אפשר להשתמש בדוגמה הבאה app.json כדי ליצור את קובץ התצורה.

בדוגמה הבאה של app.json, מוגדר מזהה הגרסה v1 יחד עם קטע deployment שכולל שתי דוגמאות של קובצי מקור ממאגר Cloud Storage‏ [MY_BUCKET_ID].

{
  "deployment": {
    "files": {
      "example-resource-file1": {
        "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/example-resource-file1"
      },
      "images/example-resource-file2": {
        "sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/images/example-resource-file2"
      },
    }
  },
  "id": "v1",
  "handlers": [
    {
      "urlRegex": "/.*",
      "script": {
        "scriptPath": "example-python-app.py"
      }
    },
  ],
  "runtime": "python27",
  "threadsafe": true,
}

המאמרים הבאים