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

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

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

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

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

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

יצירה ידנית של קובץ התצורה בפורמט 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,
}

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