לכל פריסה, Deployment Manager יוצר משתני סביבה מוגדרים מראש שמכילים מידע שהוסק מהפריסה. אפשר להשתמש במשתני הסביבה האלה בתבניות Python או Jinja2 כדי לקבל מידע על הפרויקט או על הפריסה.
לפני שמתחילים
- אם רוצים להשתמש בדוגמאות לשורת הפקודה במדריך הזה, צריך להתקין את כלי שורת הפקודה`gcloud`.
- כדי להשתמש בדוגמאות ל-API במדריך הזה, צריך להגדיר גישה ל-API.
- איך יוצרים תבנית בסיסית
- איך יוצרים הגדרה
משתני סביבה זמינים
משתני הסביבה הבאים מוגדרים אוטומטית על ידי Deployment Manager.
הם מוחלפים בכל מקום שבו משתמשים בהם בתבניות. לדוגמה, אפשר להשתמש במשתנה project_number כדי להוסיף את מספר הפרויקט לשם של חשבון שירות.
| משתנה הסביבה | ערך |
|---|---|
deployment |
שם הפריסה. |
name |
ה-name שהוצהר בהגדרה שמשתמשת בתבנית. זה יכול להיות שימושי אם רוצים שהשם שמצהירים עליו בהגדרה יהיה השם של המשאב בתבניות הבסיסיות. |
project |
מזהה הפרויקט של הפריסה הזו. |
project_number |
מספר הפרויקט של הפריסה הזו. |
current_time |
חותמת הזמן לפי שעון UTC שבה התחילה ההרחבה של הפריסה. |
type |
סוג המשאב שמוצהר בהגדרה ברמה העליונה. |
username |
המשתמש הנוכחי ב-Deployment Manager. |
שימוש במשתנה סביבה
כדי להוסיף משתנה סביבה לתבניות, משתמשים בתחביר הבא:
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
בתבנית, משתמשים במשתנים כמו בדוגמאות האלה:
Jinja
- type: compute.v1.instance name: vm-{{ env["deployment"] }} properties: machineType: zones/us-central1-a/machineTypes/f1-micro serviceAccounts: - email: {{ env['project_number'] }}-compute@developer.gserviceaccount.com scopes: - ...
Python
def GenerateConfig(context): resources = [] resources.append ({ 'name': 'vm-' + context.env["deployment"], 'type': 'compute.v1.instance', 'properties': { 'serviceAccounts': [{ 'email': context.env['project_number'] + '-compute@developer.gserviceaccount.com', 'scopes': [...] }] } ...}] return {'resources': resources}
המאמרים הבאים
- מוסיפים תבנית באופן קבוע לפרויקט כסוג מורכב.
- איך מארחים תבניות חיצוניות כדי לשתף אותן עם אחרים
- כדי לוודא שהמשתמשים יפעלו עם התבניות בצורה נכונה, צריך להוסיף סכימות.