Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך ליצור סביבת Managed Airflow.
- מידע נוסף על סביבות זמין במאמר ארכיטקטורת סביבה.
- מידע נוסף על יצירת סביבה באמצעות Terraform זמין במאמר יצירת סביבות (Terraform).
לפני שמתחילים
מפעילים את Cloud Composer API. לרשימה המלאה של השירותים שבהם נעשה שימוש ב-Managed Airflow, ראו דרישות לגבי שירותים של Managed Airflow.
יצירת סביבה נמשכת כ-25 דקות.
אם אתם יוצרים סביבה באמצעות Terraform, לחשבון השירות שמשמש את Terraform צריך להיות תפקיד עם ההרשאה
composer.environments.create.מידע נוסף על חשבון השירות של Terraform זמין במאמר הפניות להגדרות של ספק Google.
מידע נוסף על השימוש ב-Terraform ליצירת סביבת Managed Airflow זמין במסמכי התיעוד של Terraform.
מידע נוסף על פרמטרים נוספים זמין בחומר העזר בנושא ארגומנטים של Terraform.
VPC SC: כדי לפרוס סביבות של Managed Airflow בתוך מתחם אבטחה היקפית, אפשר לעיין במאמר בנושא הגדרת VPC SC. כשמשתמשים ב-VPC Service Controls עם Managed Airflow, יש כמה מגבלות ידועות.
שלב 1. יצירה או בחירה של חשבון שירות בסביבה
כשיוצרים סביבה, מציינים חשבון שירות. חשבון השירות הזה נקרא חשבון השירות של הסביבה. בסביבה שלכם נעשה שימוש בחשבון השירות הזה כדי לבצע את רוב הפעולות.
חשבון השירות של הסביבה שלכם הוא לא חשבון משתמש. חשבון שירות הוא סוג מיוחד של חשבון, שמשמש אפליקציה או מכונה וירטואלית (VM), ולא אנשים.
לא תוכלו לשנות את חשבון השירות של הסביבה שלכם בשלב מאוחר יותר.
אם עדיין אין לכם חשבון שירות לסביבות Managed Airflow בפרויקט, אתם צריכים ליצור אותו.
במאמר יצירת סביבות (Terraform) יש דוגמה מורחבת ליצירת חשבון שירות לסביבה ב-Terraform.
כדי ליצור חשבון שירות חדש לסביבה:
יוצרים חשבון שירות חדש כמו שמתואר במסמכי התיעוד של ניהול הזהויות והרשאות הגישה (IAM).
מקצים לו תפקיד, כמו שמתואר בחומרי העזר של ניהול הזהויות והרשאות הגישה (IAM). התפקיד הנדרש הוא Composer Worker (
composer.worker).כדי לגשת למשאבים אחרים בפרויקט ב- Google Cloud , צריך לתת לחשבון השירות הזה הרשאות נוספות לגישה למשאבים האלה. ברוב המקרים, התפקיד Composer Worker (
composer.worker) מספק את קבוצת ההרשאות הנדרשת הזו. הוסיפו הרשאות נוספות לחשבון השירות הזה רק אם הן נדרשות להפעלת ה-DAG.
שלב 2. הגדרה בסיסית
בשלב הזה נוצרת סביבת Managed Airflow עם פרמטרים שמוגדרים כברירת מחדל במיקום שצוין.
בכל השלבים האחרים במדריך הזה מוסבר איך להתאים אישית ולהגדיר היבטים שונים של הסביבה. כל השלבים הנותרים הם אופציונליים.
המסוף
נכנסים לדף Create environment במסוף Google Cloud .
בשדה Name, מזינים שם לסביבה.
השם צריך להתחיל באות קטנה, ואחריה יכולות להיות עד 62 אותיות קטנות, מספרים או מקפים. השם לא יכול להסתיים במקף. שם הסביבה משמש ליצירת רכיבי משנה עבור הסביבה, ולכן צריך לספק שם שתקף גם כשם של קטגוריה ב-Cloud Storage. רשימת ההגבלות זמינה במאמר בנושא הנחיות למתן שמות לקטגוריות.
ברשימה הנפתחת Location, בוחרים מיקום לסביבה.
המיקום הוא האזור שבו נמצאת הסביבה.
ברשימה הנפתחת Image version, בוחרים תמונת Managed Airflow עם הגרסה הנדרשת של Airflow.
בתפריט הנפתח Service account, בוחרים חשבון שירות לסביבה שלכם.
אם עדיין אין לכם חשבון שירות לסביבה, תוכלו לעיין במאמר יצירה או בחירה של חשבון שירות לסביבה.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION \
--service-account "SERVICE_ACCOUNT"
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.השם חייב להתחיל באות קטנה, ואחריה עד 62 אותיות קטנות, מספרים או מקפים, והוא לא יכול להסתיים במקף. שם הסביבה משמש ליצירת רכיבי משנה לסביבה, לכן צריך לספק שם שתקף גם כשם של קטגוריה ב-Cloud Storage. רשימת ההגבלות זמינה במאמר בנושא הנחיות למתן שמות לקטגוריות.
LOCATIONעם האזור של הסביבה.מיקום הוא האזור שבו נמצאת הסביבה.
SERVICE_ACCOUNTעם חשבון השירות של הסביבה.IMAGE_VERSIONבשם של קובץ האימג' של Managed Airflow.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
"
API
יוצרים בקשת API של environments.create. מציינים את ההגדרות במשאב Environment.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
PROJECT_IDבמזהה הפרויקט.
LOCATIONעם האזור של הסביבה.מיקום הוא האזור שבו הסביבה נמצאת.
ENVIRONMENT_NAMEבשם הסביבה.השם צריך להתחיל באות קטנה, ואחריה יכולות להיות עד 62 אותיות קטנות, מספרים או מקפים. השם לא יכול להסתיים במקף. שם הסביבה משמש ליצירת רכיבי משנה לסביבה, לכן צריך לספק שם שתקף גם כשם של קטגוריה ב-Cloud Storage. רשימת ההגבלות מופיעה במאמר הנחיות למתן שמות לקטגוריות.
IMAGE_VERSIONבשם של קובץ האימג' של Managed Airflow.
SERVICE_ACCOUNTעם חשבון השירות של הסביבה.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.11.1-build.20"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כדי ליצור סביבה עם פרמטרים שמוגדרים כברירת מחדל במיקום שצוין, מוסיפים את בלוק המשאבים הבא להגדרות Terraform ומריצים את הפקודה terraform apply.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.השם חייב להתחיל באות קטנה, ואחריה עד 62 אותיות קטנות, מספרים או מקפים, והוא לא יכול להסתיים במקף. שם הסביבה משמש ליצירת רכיבי משנה לסביבה, לכן צריך לספק שם שתקף גם כשם של קטגוריה ב-Cloud Storage. רשימת ההגבלות זמינה במאמר בנושא הנחיות למתן שמות לקטגוריות.
LOCATIONבאזור של הסביבה.מיקום הוא האזור שבו הסביבה נמצאת.
IMAGE_VERSIONבשם של קובץ אימג' של Managed Airflow.
SERVICE_ACCOUNTעם חשבון השירות של הסביבה.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-3-airflow-2.11.1-build.20"
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
שלב 3. (אופציונלי) הפעלת מצב פיתוח
אפשר להשתמש בסביבות של מצב פיתוח כדי לבדוק ולפתח DAG לפני שהם נפרסים בסביבת הייצור. אתם יכולים להעביר למצב שינה סביבת פיתוח כשאתם לא משתמשים בה.
בסביבות של מצב פיתוח יש את המגבלות הבאות:
- רק Managed Airflow (דור 3) עם Airflow 3.
- רק מצב עמידות רגיל.
גודל סביבה קטן ומגבלות ברירת מחדל על משאבים שמוגדרים על ידי הגדרת ברירת המחדל לסביבה קטנה. אי אפשר לשנות את מספר הרכיבים של Airflow או את מגבלות המשאבים של סביבה במצב פיתוח.
המסוף
בדף Create environment:
- ב-Image version, בוחרים גרסה עם Airflow 3.
- בוחרים באפשרות מצב פיתוח.
gcloud
כשיוצרים סביבה, הארגומנט --enable-development-mode מפעיל את מצב הפיתוח:
gcloud beta composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-3 \
--service-account "SERVICE_ACCOUNT" \
--enable-development-mode
API
כשיוצרים סביבה, במשאב Environment מגדירים את השדה mode לערך DEVELOPMENT:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"mode": "DEVELOPMENT"
}
דוגמה:
// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"mode": "DEVELOPMENT"
}
Terraform
התכונה הזו עדיין לא נתמכת ב-Terraform.
אחרי שיוצרים את סביבת מצב הפיתוח, היא תהיה במצב פעולה. אפשר להעביר אותו למצב שינה או להפעיל אותו מחדש בכל שלב.
שלב 4. (אופציונלי) הגדרת פרמטרים של קנה מידה וביצועים של הסביבה
כדי לציין את הגודל וההגדרות של הסביבה, בוחרים את גודל הסביבה ואת הגדרות עומסי העבודה.
אפשר לשנות את כל הפרמטרים של הביצועים וההתאמה לגודל אחרי שיוצרים סביבה.
הפרמטרים הבאים שולטים בהיקף ובביצועים:
גודל הסביבה. שולט בפרמטרים של הביצועים של תשתית Managed Airflow המנוהלת, שכוללת את מסד הנתונים של Airflow. כדאי לבחור סביבה גדולה יותר אם רוצים להריץ מספר גדול של DAG ומשימות עם ביצועים טובים יותר של התשתית. לדוגמה, הגדלת הגודל של הסביבה מגדילה את מספר הרשומות ביומן של משימות Airflow שהסביבה יכולה לעבד עם עיכוב מינימלי.
הגדרת עומסי עבודה. שליטה בהיקף ובביצועים של רכיבי Airflow שפועלים באשכול GKE של הסביבה.
מתזמן Airflow. מנתח קובצי הגדרות של DAG, מתזמן הפעלות של DAG על סמך מרווח הזמן בלוח הזמנים, ומכניס משימות לתור לביצוע על ידי Airflow workers.
בסביבה שלכם אפשר להריץ כמה מתזמנים של Airflow בו-זמנית. כדי לשפר את הביצועים והמהימנות, מומלץ להשתמש בכמה מתזמנים כדי לחלק את העומס בין כמה מופעים של מתזמן.
הגדלת מספר המתזמנים לא תמיד משפרת את הביצועים של Airflow. לדוגמה, יכול להיות ששימוש רק במתזמן אחד יניב ביצועים טובים יותר מאשר שימוש בשני מתזמנים. זה יכול לקרות כשלא נעשה שימוש במתזמן הנוסף, ולכן הוא צורך משאבים מהסביבה בלי לתרום לביצועים הכוללים. הביצועים בפועל של המתזמן תלויים במספר ה-workers של Airflow, במספר ה-DAGs והמשימות שפועלים בסביבה, ובהגדרות של Airflow ושל הסביבה.
מומלץ להתחיל עם שני מתזמנים ואז לעקוב אחרי הביצועים של הסביבה. אם תשנו את מספר המתזמנים, תמיד תוכלו להחזיר את הסביבה למספר המתזמנים המקורי.
מידע נוסף על הגדרת מספר מתזמנים זמין במאמרי העזרה של Airflow.
Airflow triggerer. מעקב אסינכרוני אחרי כל המשימות המושהות בסביבה שלכם. אם יש לכם לפחות מופע אחד של טריגר בסביבה (או לפחות שניים בסביבות עם עמידות גבוהה), אתם יכולים להשתמש באופרטורים שניתנים לדחייה ב-DAG.
ב-Managed Airflow (דור 3), הטריגר של Airflow מופעל כברירת מחדל. אם רוצים ליצור סביבה בלי טריגר, צריך להגדיר את מספר הטריגרים ל-0.
מעבד Airflow DAG. מעבד קובצי DAG והופך אותם לאובייקטים של DAG. ב-Managed Airflow (דור 3), החלק הזה של המתזמן פועל כרכיב סביבה נפרד.
שרת האינטרנט של Airflow. מפעיל את ממשק האינטרנט של Airflow שבו אפשר לעקוב אחרי DAG, לנהל אותו ולהמחיש אותו.
עובדי Airflow. מבצעים משימות שתוזמנו על ידי מתזמני Airflow. מספר ה-workers המינימלי והמקסימלי בסביבה משתנה באופן דינמי בהתאם למספר המשימות בתור.
המסוף
אתם יכולים לבחור הגדרה קבועה מראש לסביבה שלכם. כשבוחרים הגדרה קבועה מראש, הפרמטרים של קנה המידה והביצועים של אותה הגדרה נבחרים באופן אוטומטי. אתם יכולים גם לבחור הגדרה מראש בהתאמה אישית ולציין את כל הפרמטרים של קנה המידה והביצועים של הסביבה שלכם.
כדי לבחור את הגדרת קנה המידה והביצועים של הסביבה, בדף Create environment:
כדי להשתמש בערכים מוגדרים מראש, בקטע Environment resources (משאבי סביבה), לוחצים על Small (קטן), Medium (בינוני), Large (גדול) או Extra Large (גדול במיוחד).
כדי לציין ערכים מותאמים אישית לפרמטרים של קנה המידה והביצועים:
בקטע Environment resources, לוחצים על Custom.
בקטע Scheduler, מגדירים את מספר המתזמנים שרוצים להשתמש בהם, ואת הקצאת המשאבים למעבד, לזיכרון ולאחסון שלהם.
בקטע Triggerer, משתמשים בשדה Number of triggerers כדי להזין את מספר ה-triggerers בסביבה שלכם.
אם אתם לא רוצים להשתמש באופרטורים שניתנים לדחייה ב-DAG שלכם, הגדירו את מספר הטריגרים לאפס.
אם הגדרתם לפחות טריגר אחד לסביבה, תוכלו להשתמש בשדות CPU וזיכרון כדי להגדיר הקצאת משאבים לטריגרים.
בקטע DAG processor, מציינים את מספר מעבדי ה-DAG בסביבה ואת כמות המעבדים, הזיכרון והאחסון לכל מעבד DAG.
בסביבות עם עמידות גבוהה נדרשים לפחות שני מעבדי DAG.
בקטע Web server, מציינים את כמות המעבדים (CPU), הזיכרון והאחסון של שרת האינטרנט.
בקטע Worker, מציינים את הפרטים הבאים:
- המספר המינימלי והמקסימלי של עובדים למגבלות של התאמה אוטומטית לעומס בסביבה שלכם.
- הקצאת המעבד (CPU), הזיכרון והאחסון ל-workers
בקטע Core infrastructure, בוחרים את גודל הסביבה ברשימה הנפתחת Environment size.
gcloud
כשיוצרים סביבה, הארגומנטים הבאים קובעים את פרמטרי הביצועים וההיקף של הסביבה.
-
--environment-sizeמציין את גודל הסביבה. -
--scheduler-countמציין את מספר המתזמנים. -
--scheduler-cpuמציין את מספר המעבדים לתזמון של Airflow. -
--scheduler-memoryמציין את נפח הזיכרון של מתזמן Airflow. --scheduler-storageמציין את כמות מקום בכונן עבור מתזמן Airflow.
--triggerer-countמציין את מספר הטריגרים של Airflow בסביבה. ערך ברירת המחדל של הדגל הזה הוא0. צריך להשתמש בטריגרים אם רוצים להשתמש באופרטורים שניתנים לדחייה ב-DAG.- בסביבות עם עמידות סטנדרטית, צריך להשתמש בערך בין
0ל-10. - בסביבות עם עמידות גבוהה, צריך להשתמש ב-
0או בערך בין2ל-10.
- בסביבות עם עמידות סטנדרטית, צריך להשתמש בערך בין
--triggerer-cpuמציין את מספר המעבדים של טריגר Airflow, ביחידות vCPU. ערכים מותרים:0.5, 0.75, 1. ערך ברירת המחדל הוא0.5.
--triggerer-memoryמציין את נפח הזיכרון של טריגר Airflow, ב-GB. ערך ברירת המחדל הוא0.5.הזיכרון המינימלי שנדרש שווה למספר המעבדים שהוקצו לטריגרים. הערך המקסימלי המותר שווה למספר המעבדים של הטריגר כפול 6.5.
לדוגמה, אם מגדירים את הדגל
--triggerer-cpuל-1, הערך המינימלי של--triggerer-memoryהוא1והערך המקסימלי הוא6.5.המשתנה
--dag-processor-countמציין את מספר מעבדי ה-DAG בסביבה.בסביבות עם עמידות גבוהה נדרשים לפחות שני מעבדי DAG.
--dag-processor-cpuמציין את מספר המעבדים של מעבד ה-DAG.
--dag-processor-memoryמציין את נפח הזיכרון של מעבד ה-DAG.
--dag-processor-storageמציין את נפח האחסון בכונן של מעבד ה-DAG.
--web-server-cpuמציין את מספר המעבדים של שרת האינטרנט של Airflow.
--web-server-memoryמציין את נפח הזיכרון של שרת האינטרנט של Airflow.
--web-server-storageמציין את נפח מקום בכונן לשרת האינטרנט של Airflow.
--worker-cpuמציין את מספר המעבדים (CPU) של עובד Airflow.
--worker-memoryמציין את נפח הזיכרון של עובד Airflow.
--worker-storageמציין את כמות מקום בכונן עבור Airflow worker.--min-workersמציין את המספר המינימלי של Airflow workers. באשכול של הסביבה פועלים לפחות מספר ה-workers הזה.
--max-workersמציין את המספר המקסימלי של Airflow workers. האשכול של הסביבה מריץ לכל היותר את מספר ה-workers הזה.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--environment-size ENVIRONMENT_SIZE \
--scheduler-count SCHEDULER_COUNT \
--scheduler-cpu SCHEDULER_CPU \
--scheduler-memory SCHEDULER_MEMORY \
--scheduler-storage SCHEDULER_STORAGE \
--triggerer-count TRIGGERER_COUNT \
--triggerer-cpu TRIGGERER_CPU \
--triggerer-memory TRIGGERER_MEMORY \
--dag-processor-count DAG_PROCESSOR_COUNT \
--dag-processor-cpu DAG_PROCESSOR_CPU \
--dag-processor-memory DAG_PROCESSOR_MEMORY \
--dag-processor-storage DAG_PROCESSOR_STORAGE \
--web-server-cpu WEB_SERVER_CPU \
--web-server-memory WEB_SERVER_MEMORY \
--web-server-storage WEB_SERVER_STORAGE \
--worker-cpu WORKER_CPU \
--worker-memory WORKER_MEMORY \
--worker-storage WORKER_STORAGE \
--min-workers WORKERS_MIN \
--max-workers WORKERS_MAX
מחליפים את:
-
ENVIRONMENT_SIZEעםsmall, medium, large,extra-large. SCHEDULER_COUNTעם מספר הכלי לתזמון פגישות.-
SCHEDULER_CPUעם מספר המעבדים של המתזמן, ביחידות vCPU. -
SCHEDULER_MEMORYעם נפח הזיכרון של מתזמן. -
SCHEDULER_STORAGEעם גודל הדיסק של כלי לתזמון. TRIGGERER_COUNTעם מספר הטריגרים.-
TRIGGERER_CPUעם מספר המעבדים של הגורם המפעיל, ביחידות vCPU.
TRIGGERER_MEMORYעם נפח הזיכרון של הטריגר, ב-GB.
DAG_PROCESSOR_COUNTעם מספר המעבדים של DAG.
DAG_PROCESSOR_CPUבמספר המעבדים של מעבד ה-DAG.
DAG_PROCESSOR_MEMORYבנפח הזיכרון של מעבד ה-DAG.
DAG_PROCESSOR_STORAGEבכמות מקום בכונן עבור מעבד ה-DAG.
WEB_SERVER_CPUעם מספר המעבדים של שרת האינטרנט, ביחידות vCPU.
WEB_SERVER_MEMORYבנפח הזיכרון של שרת האינטרנט.
WEB_SERVER_STORAGEבנפח הזיכרון של שרת האינטרנט.
WORKER_CPUעם מספר המעבדים של worker, ביחידות vCPU.
WORKER_MEMORYעם נפח הזיכרון של העובד.
WORKER_STORAGEבגודל הדיסק של ה-worker.
WORKERS_MINעם המספר המינימלי של עובדי Airflow שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם מספר קטן יותר של workers יכול להתמודד עם העומס.
WORKERS_MAXעם המספר המקסימלי של עובדי Airflow שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם נדרש מספר גבוה יותר של workers כדי לטפל בעומס.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--environment-size small \
--scheduler-count 1 \
--scheduler-cpu 0.5 \
--scheduler-memory 2.5GB \
--scheduler-storage 2GB \
--triggerer-count 1 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5GB \
--dag-processor-count 1 \
--dag-processor-cpu 0.5 \
--dag-processor-memory 2GB \
--dag-processor-storage 1GB \
--web-server-cpu 1 \
--web-server-memory 2.5GB \
--web-server-storage 2GB \
--worker-cpu 1 \
--worker-memory 2GB \
--worker-storage 2GB \
--min-workers 2 \
--max-workers 4
API
כשיוצרים סביבה, במשאב Environment > EnvironmentConfig > WorkloadsConfig, מציינים את פרמטרי קנה המידה והביצועים של הסביבה.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": SCHEDULER_CPU,
"memoryGb": SCHEDULER_MEMORY,
"storageGb": SCHEDULER_STORAGE,
"count": SCHEDULER_COUNT
},
"triggerer": {
"count": TRIGGERER_COUNT,
"cpu": TRIGGERER_CPU,
"memoryGb": TRIGGERER_MEMORY
},
"dagProcessor": {
"count": DAG_PROCESSOR_COUNT,
"cpu": DAG_PROCESSOR_CPU,
"memoryGb": DAG_PROCESSOR_MEMORY,
"storageGb": DAG_PROCESSOR_STORAGE
},
"webServer": {
"cpu": WEB_SERVER_CPU,
"memoryGb": WEB_SERVER_MEMORY,
"storageGb": WEB_SERVER_STORAGE
},
"worker": {
"cpu": WORKER_CPU,
"memoryGb": WORKER_MEMORY,
"storageGb": WORKER_STORAGE,
"minCount": WORKERS_MIN,
"maxCount": WORKERS_MAX
}
},
"environmentSize": "ENVIRONMENT_SIZE",
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
SCHEDULER_CPUעם מספר המעבדים של מתזמן, ביחידות vCPU. -
SCHEDULER_MEMORYעם נפח הזיכרון של מתזמן, ב-GB. -
SCHEDULER_STORAGEעם גודל הדיסק של המתזמן, ב-GB. SCHEDULER_COUNTעם מספר הכלי לתזמון פגישות.
TRIGGERER_COUNTעם מספר המפעילים. ערך ברירת המחדל הוא0. צריך טריגרים אם רוצים להשתמש באופרטורים שניתנים לדחייה ב-DAG.- בסביבות עם עמידות סטנדרטית, צריך להשתמש בערך בין
0ל-10. - בסביבות עם עמידות גבוהה, צריך להשתמש ב-
0או בערך בין2ל-10.
אם אתם משתמשים בטריגר אחד לפחות, אתם צריכים לציין גם את הפרמטרים
TRIGGERER_CPUו-TRIGGERER_MEMORY:- בסביבות עם עמידות סטנדרטית, צריך להשתמש בערך בין
TRIGGERER_CPUמציין את מספר המעבדים (CPU) של הטריגר, ביחידות vCPU. ערכים מותרים:0.5, 0.75, 1.
TRIGGERER_MEMORYמגדיר את נפח הזיכרון עבור מפעיל. הזיכרון המינימלי הנדרש שווה למספר המעבדים שהוקצו לטריגרים. הערך המקסימלי המותר שווה למספר המעבדים של הטריגר כפול 6.5.לדוגמה, אם מגדירים את
TRIGGERER_CPUל-1, הערך המינימלי שלTRIGGERER_MEMORYהוא1והערך המקסימלי הוא6.5.
DAG_PROCESSOR_COUNTעם מספר המעבדים של DAG.בסביבות עם חוסן גבוה נדרשים לפחות שני מעבדי DAG.
DAG_PROCESSOR_CPUעם מספר המעבדים של מעבד ה-DAG, ביחידות vCPU.
DAG_PROCESSOR_MEMORYעם נפח הזיכרון של מעבד ה-DAG, ב-GB.
DAG_PROCESSOR_STORAGEעם כמות מקום בכונן עבור מעבד ה-DAG, ב-GB.
WEB_SERVER_CPUבמספר המעבדים של שרת האינטרנט, ביחידות vCPU.
WEB_SERVER_MEMORYעם נפח הזיכרון של שרת האינטרנט, ב-GB.
WEB_SERVER_STORAGEעם גודל הדיסק של שרת האינטרנט, בגיגה-בייט.
WORKER_CPUעם מספר המעבדים של worker, ביחידות vCPU.
WORKER_MEMORYעם נפח הזיכרון של ה-worker, ב-GB.
WORKER_STORAGEעם גודל הדיסק של העובד, ב-GB.
WORKERS_MINעם המספר המינימלי של Airflow workers שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם מספר קטן יותר של workers יכול להתמודד עם העומס.
WORKERS_MAXעם המספר המקסימלי של עובדי Airflow שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם נדרש מספר גבוה יותר של workers כדי לטפל בעומס.
ENVIRONMENT_SIZEעם גודל הסביבה:ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_SIZE_LARGE,ENVIRONMENT_SIZE_EXTRA_LARGE.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": 2.5,
"memoryGb": 2.5,
"storageGb": 2,
"count": 1
},
"triggerer": {
"cpu": 0.5,
"memoryGb": 0.5,
"count": 1
},
"dagProcessor": {
"count": 1,
"cpu": 0.5,
"memoryGb": 2,
"storageGb": 1
},
"webServer": {
"cpu": 1,
"memoryGb": 2.5,
"storageGb": 2
},
"worker": {
"cpu": 1,
"memoryGb": 2,
"storageGb": 2,
"minCount": 2,
"maxCount": 4
}
},
"environmentSize": "ENVIRONMENT_SIZE_SMALL",
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, הארגומנטים הבאים קובעים את הפרמטרים של קנה המידה והביצועים של הסביבה.
בבלוק
config:- השדה
environment_sizeקובע את גודל הסביבה.
- השדה
בבלוק
workloads_config:- השדה
scheduler.cpuמציין את מספר המעבדים של מתזמן Airflow. - השדה
scheduler.memory_gbמציין את נפח הזיכרון של מתזמן Airflow. - בשדה
scheduler.storage_gbמציינים את כמות מקום בכונן עבור מתזמן. - בשדה
scheduler.countמצוין מספר המתזמנים בסביבה. - השדה
triggerer.cpuמציין את מספר המעבדים של טריגר Airflow. - בשדה
triggerer.memory_gbמצוין נפח הזיכרון של טריגר Airflow. בשדה
triggerer.countמצוין מספר הטריגרים בסביבה שלכם.השדה
dag_processor.cpuמציין את מספר המעבדים של מעבד DAG.בשדה
dag_processor.memory_gbמצוין נפח הזיכרון של מעבד DAG.בשדה
dag_processor.storage_gbמצוין נפח האחסון בדיסק למעבד DAG.השדה
dag_processor.countמציין את מספר מעבדי ה-DAG.בסביבות עם עמידות גבוהה נדרשים לפחות שני מעבדי DAG.
בשדה
web_server.cpuמציינים את מספר המעבדים (CPU) של שרת האינטרנט של Airflow.בשדה
web_server.memory_gbמצוין נפח הזיכרון של שרת האינטרנט של Airflow.בשדה
web_server.storage_gbמצוין נפח האחסון של שרת האינטרנט של Airflow.בשדה
worker.cpuמציינים את מספר המעבדים (CPU) של Airflow worker.בשדה
worker.memory_gbמצוין נפח הזיכרון של Airflow worker.בשדה
worker.storage_gbמצוין נפח האחסון של Airflow worker.בשדה
worker.min_countמצוין המספר המינימלי של ה-workers בסביבה.השדה
worker.max_countמציין את המספר המקסימלי של עובדים בסביבה שלכם.
- השדה
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
cpu = SCHEDULER_CPU
memory_gb = SCHEDULER_MEMORY
storage_gb = SCHEDULER_STORAGE
count = SCHEDULER_COUNT
}
triggerer {
count = TRIGGERER_COUNT
cpu = TRIGGERER_CPU
memory_gb = TRIGGERER_MEMORY
}
dag_processor {
cpu = DAG_PROCESSOR_CPU
memory_gb = DAG_PROCESSOR_MEMORY
storage_gb = DAG_PROCESSOR_STORAGE
count = DAG_PROCESSOR_COUNT
}
web_server {
cpu = WEB_SERVER_CPU
memory_gb = WEB_SERVER_MEMORY
storage_gb = WEB_SERVER_STORAGE
}
worker {
cpu = WORKER_CPU
memory_gb = WORKER_MEMORY
storage_gb = WORKER_STORAGE
min_count = WORKERS_MIN
max_count = WORKERS_MAX
}
}
environment_size = "ENVIRONMENT_SIZE"
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONבאזור שבו נמצאת הסביבה. -
SERVICE_ACCOUNTעם חשבון השירות של הסביבה. -
SCHEDULER_CPUעם מספר המעבדים של מתזמן, ביחידות vCPU. -
SCHEDULER_MEMORYעם נפח הזיכרון של מתזמן, ב-GB. -
SCHEDULER_STORAGEעם גודל הדיסק של המתזמן, ב-GB. SCHEDULER_COUNTעם מספר הכלי לתזמון פגישות.TRIGGERER_COUNTעם מספר הטריגרים.-
TRIGGERER_CPUעם מספר המעבדים של הגורם המפעיל, ביחידות vCPU.
TRIGGERER_MEMORYעם נפח הזיכרון של הגורם המפעיל, ב-GB.
DAG_PROCESSOR_CPUעם מספר המעבדים של מעבד ה-DAG, ביחידות של vCPU.
DAG_PROCESSOR_MEMORYעם נפח הזיכרון של מעבד ה-DAG, ב-GB.
DAG_PROCESSOR_STORAGEעם כמות מקום בכונן עבור מעבד ה-DAG, ב-GB.
DAG_PROCESSOR_COUNTבמספר מעבדי ה-DAG.
WEB_SERVER_CPUעם מספר המעבדים של שרת האינטרנט, ביחידות vCPU.
WEB_SERVER_MEMORYעם נפח הזיכרון של שרת האינטרנט, ב-GB.
WEB_SERVER_STORAGEעם גודל הדיסק של שרת האינטרנט, בגיגה-בייט.
WORKER_CPUעם מספר המעבדים של worker, ביחידות vCPU.
WORKER_MEMORYעם נפח הזיכרון של ה-worker, ב-GB.
WORKER_STORAGEעם גודל הדיסק של העובד, ב-GB.
WORKERS_MINעם המספר המינימלי של Airflow workers שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם מספר קטן יותר של workers יכול להתמודד עם העומס.
WORKERS_MAXעם המספר המקסימלי של עובדי Airflow שהסביבה יכולה להריץ. מספר ה-workers בסביבה לא יעלה על המספר הזה, גם אם נדרש מספר גבוה יותר של workers כדי לטפל בעומס.
ENVIRONMENT_SIZEעם גודל הסביבה:ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_SIZE_LARGE,ENVIRONMENT_SIZE_EXTRA_LARGE.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
cpu = 2.5
memory_gb = 2.5
storage_gb = 2
count = 1
}
triggerer {
count = 1
cpu = 0.5
memory_gb = 0.5
}
dag_processor {
cpu = 1
memory_gb = 2
storage_gb = 1
count = 1
}
web_server {
cpu = 1
memory_gb = 2.5
storage_gb = 2
}
worker {
cpu = 1
memory_gb = 2
storage_gb = 2
min_count = 2
max_count = 4
}
}
environment_size = "ENVIRONMENT_SIZE_SMALL"
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
שלב 5. (אופציונלי) הפעלת מצב עמידות גבוהה
גמישות גבוהה (זמינות גבוהה) סביבות Airflow מנוהלות הן סביבות שמשתמשות במנגנוני יתירות וגיבוי מובנים, שמפחיתים את הרגישות של הסביבה לכשלים אזוריים ולהפסקות שנגרמות מנקודת כשל בודדת.
ב-Managed Airflow (דור 3), סביבות עם זמינות גבוהה זמינות החל מגרסאות ה-build של Airflow composer-3-airflow-2.10.2-build.13 ו-composer-3-airflow-2.9.3-build.20.
סביבה עם עמידות גבוהה היא סביבה עם כמה אזורים, שפועלת לפחות בשני אזורים של אזור נבחר. הרכיבים הבאים פועלים באזורים נפרדים:
בדיוק שני מתזמנים של Airflow
לפחות שני טריגרים (אם מספר הטריגרים לא מוגדר ל-
0)לפחות שני מעבדי DAG
שני שרתי אינטרנט
מספר ה-workers המינימלי מוגדר ל-2, והאשכול של הסביבה מחלק את מכונות ה-worker בין אזורים. במקרה של הפסקת חשמל אזורית, מתוזמן מחדש את ה-worker instances המושפעים באזור אחר. רכיב Cloud SQL בסביבה עמידה מאוד כולל מכונה ראשית ומכונת המתנה שמפוזרות בין אזורים.
המסוף
בדף Create environment:
בקטע מצב עמידות, בוחרים באפשרות עמידות גבוהה.
בקטע Environment resources, בוחרים פרמטרים של שינוי גודל לסביבה עם חוסן גבוה. בסביבות עמידות במיוחד נדרשים שני מתזמנים בדיוק, אפס או בין שניים לעשרה מפעילים, ולפחות שני עובדים:
לוחצים על בהתאמה אישית.
בתפריט הנפתח Number of schedulers, בוחרים באפשרות
2.בתפריט הנפתח מספר הטריגרים, בוחרים באפשרות
0או בערך בין2ל-10. מגדירים את ההקצאה של המעבד ושל הזיכרון לטריגרים.ברשימה הנפתחת Minimum number of workers, בוחרים את הערך
2או ערך גבוה יותר, בהתאם למספר ה-workers הנדרש.
בקטע Network configuration (הגדרת רשת):
בסוג הרשת, בוחרים באפשרות סביבת IP פרטית.
אם נדרש, מציינים פרמטרים אחרים של רשת.
gcloud
כשיוצרים סביבה, הארגומנט --enable-high-resilience מפעיל את מצב החוסן הגבוה.
מגדירים את הארגומנטים הבאים:
--enable-high-resilience-
--enable-private-environment, ופרמטרים אחרים של רשת לסביבת IP פרטית, אם צריך --scheduler-countעד2--triggerer-countעד0או ערך בין2ל-10. אם אתם משתמשים בטריגרים, צריך גם את הדגלים--triggerer-cpu and--triggerer-memory` כדי ליצור סביבה.מידע נוסף על הדגלים
--triggerer-count,--triggerer-cpuו---triggerer-memoryזמין במאמר הגדרת פרמטרים של קנה מידה וביצועים בסביבה.
--min-workersעד2או יותר
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--enable-high-resilience \
--enable-private-environment \
--scheduler-count 2 \
--triggerer-count 2 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5 \
--min-workers 2
API
כשיוצרים סביבה, במשאב Environment > EnvironmentConfig, מפעילים את מצב העמידות הגבוהה.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"resilience_mode": "HIGH_RESILIENCE",
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"resilience_mode": "HIGH_RESILIENCE",
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, השדה resilience_mode בבלוק config מפעיל את מצב העמידות הגבוהה.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
שלב 6. (אופציונלי) מציינים אזור למסד הנתונים של הסביבה
כשיוצרים סביבה עם עמידות סטנדרטית, אפשר לציין אזור מועדף של Cloud SQL.
המסוף
בדף Create environment:
בקטע Advanced configuration, מרחיבים את הפריט Show advanced configuration.
ברשימה Airflow database zone, בוחרים את אזור Cloud SQL המועדף.
gcloud
כשיוצרים סביבה, הארגומנט --cloud-sql-preferred-zone מציין אזור מועדף של Cloud SQL.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--cloud-sql-preferred-zone SQL_ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
SQL_ZONE: אזור מועדף ב-Cloud SQL. האזור הזה צריך להיות ממוקם באזור שבו נמצאת הסביבה.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--cloud-sql-preferred-zone us-central1-a
API
כשיוצרים סביבה, במשאב DatabaseConfig של Environment >, מציינים את האזור המועדף של Cloud SQL.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
SQL_ZONE: אזור מועדף ב-Cloud SQL. האזור הזה צריך להיות ממוקם באזור שבו נמצאת הסביבה.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"databaseConfig": {
"zone": "us-central1-a"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, השדה zone בבלוק database_config מציין את האזור המועדף ב-Cloud SQL.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
database_config {
zone = "SQL_ZONE"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
SQL_ZONE: האזור המועדף של Cloud SQL. האזור הזה חייב להיות באזור שבו נמצאת הסביבה.
שלב 7. (אופציונלי) הגדרת הרשת של הסביבה
אפשר להגדיר את הרשת של Managed Airflow (דור 3) באחת מהדרכים הבאות:
- בסביבת IP ציבורית, לרכיבי Airflow של הסביבה יש גישה לאינטרנט.
- בסביבת IP פרטית, לרכיבי Airflow של הסביבה אין גישה לאינטרנט.
- סביבות עם כתובת IP פרטית וכתובת IP ציבורית יכולות להתחבר לרשת ה-VPC כאפשרות נפרדת.
- אתם יכולים לציין את טווח כתובות ה-IP הפנימיות של הסביבה שלכם. אי אפשר לשנות את הטווח הזה אחר כך.
אתם יכולים לאפשר גישה לאינטרנט כשאתם מתקינים חבילות PyPI. לדוגמה, אם תפעילו את האפשרות הזו, עדיין תוכלו להתקין חבילות PyPI מאינדקס החבילות של Python בסביבת ה-IP הפרטי.
בסביבת VPC משותף, צריך לבצע הגדרות נוספות של רשת בפרויקט המארח, ואז ליצור סביבת IP ציבורית או פרטית בפרויקט שירות. פועלים לפי ההוראות שבדף הגדרת VPC משותף.
המסוף
חשוב לוודא שהרשת מוגדרת לסוג הסביבה שרוצים ליצור.
בקטע Network configuration, מרחיבים את הפריט Show network configuration.
אם רוצים לחבר את הסביבה לרשת VPC, בשדה Network attachment (חיבור לרשת), בוחרים חיבור לרשת. אפשר גם ליצור חיבור חדש לרשת. מידע נוסף זמין במאמר חיבור סביבה לרשת VPC.
אם רוצים ליצור סביבת IP פרטית, בקטע Networking type בוחרים באפשרות Private IP environment.
אם רוצים להוסיף תגי רשת, אפשר לקרוא מידע נוסף במאמר הוספת תגי רשת.
gcloud
חשוב לוודא שהרשת מוגדרת לסוג הסביבה שרוצים ליצור.
כשיוצרים סביבה, הארגומנטים הבאים קובעים את הפרמטרים של הרשת. אם משמיטים פרמטר, המערכת משתמשת בערך ברירת המחדל.
--enable-private-environmentמפעיל סביבת IP פרטית.
--networkהוא מזהה רשת ה-VPC.
--subnetworkמציין את מזהה רשת המשנה של ה-VPC.
-
--composer-internal-ipv4-cidr-blockמציין את טווח כתובות ה-IP הפנימיות של הסביבה. הטווח הזה משמש את Managed Airflow בפרויקט הדייר של הסביבה שלכם.
דוגמה (סביבת IP פרטית עם רשת VPC מקושרת)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
מחליפים את:
-
NETWORK_IDעם מזהה רשת ה-VPC.
SUBNETWORK_IDבמזהה של רשת המשנה של ה-VPC.
שלב 8. (אופציונלי) הוספת תגים של רשתות
תגי הרשת חלים על כל המכונות הווירטואליות של הצמתים באשכול של הסביבה. התגים משמשים לזיהוי מקורות או יעדים תקפים עבור חומות אש ברשת. כל תג ברשימה צריך להיות תואם ל-RFC 1035.
לדוגמה, אם אתם מתכננים להגביל את התנועה לסביבת IP פרטית באמצעות כללי חומת אש, כדאי להוסיף תגי רשת.
המסוף
בדף Create environment:
- מאתרים את הקטע Network configuration (הגדרת רשת).
- בשדה Network tags, מזינים את תגי הרשת של הסביבה.
gcloud
כשיוצרים סביבה, הארגומנטים הבאים שולטים בתגי הרשת:
-
--tagsמציין רשימה מופרדת בפסיקים של תגי רשת שמוחלים על כל מכונות ה-VM של הצמתים.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--tags TAGS
מחליפים את:
-
TAGSברשימה מופרדת בפסיקים של תגי רשת.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--tags group1,production
API
כשיוצרים סביבה, במשאב Environment > EnvironmentConfig, מציינים תגי רשת לסביבה.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
],
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
TAGעם תג רשת.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"tags": [
"group1",
"production"
],
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, השדות הבאים מגדירים את תגי הרשת של הסביבה:
- השדה
tagsבבלוקnode_configמציין רשימה של תגי רשת שמופרדים בפסיקים ומוחלים על כל המכונות הווירטואליות של הצמתים.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
tags = ["TAGS"]
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
TAGSברשימה מופרדת בפסיקים של תגי רשת.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
tags = ["group1","production"]
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
שלב 9. (אופציונלי) הגדרת גישה לרשת של שרת אינטרנט
הפרמטרים של הגישה לשרת האינטרנט של Airflow לא תלויים בסוג הסביבה. במקום זאת, אפשר להגדיר גישה לשרת האינטרנט בנפרד. לדוגמה, בסביבת IP פרטית עדיין אפשר לגשת לממשק המשתמש של Airflow מהאינטרנט.
אי אפשר להגדיר את טווחי כתובות ה-IP המותרים באמצעות כתובות IP פרטיות.
המסוף
בדף Create environment:
בקטע Network configuration, מרחיבים את הפריט Show network configuration.
בקטע Web server network access control (בקרת גישה לרשת של שרת אינטרנט):
כדי לתת גישה לשרת האינטרנט של Airflow מכל כתובות ה-IP, בוחרים באפשרות Allow access from all IP addresses.
כדי להגביל את הגישה רק לטווחי כתובות IP ספציפיים, בוחרים באפשרות Allow access only from specific IP addresses. בשדה טווח כתובות IP, מציינים טווח כתובות IP בסימון CIDR. בשדה Description, מציינים תיאור אופציונלי לטווח הזה. אם רוצים לציין יותר מטווח אחד, לוחצים על Add IP range.
כדי לחסום את הגישה לכל כתובות ה-IP, בוחרים באפשרות אפשר גישה רק מכתובות IP ספציפיות ולוחצים על מחיקת פריט לצד רשומת הטווח הריקה.
gcloud
כשיוצרים סביבה, הארגומנטים הבאים שולטים ברמת הגישה לשרת האינטרנט:
--web-server-allow-allמספק גישה ל-Airflow מכל כתובות ה-IP. זו האפשרות שמוגדרת כברירת המחדל.
--web-server-allow-ipמגביל את הגישה רק לטווחים ספציפיים של כתובות IP של מקורות. כדי לציין כמה טווחי IP, משתמשים בארגומנט הזה כמה פעמים.
--web-server-deny-allאוסר על גישה לכל כתובות ה-IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
מחליפים את:
-
WS_IP_RANGEבטווח ה-IP, בסימון CIDR, שיכול לגשת לממשק המשתמש של Airflow. -
WS_RANGE_DESCRIPTIONבתיאור של טווח כתובות ה-IP.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
כשיוצרים סביבה, במשאב Environment > EnvironmentConfig, מציינים את פרמטרי הגישה לשרת האינטרנט.
כדי לאפשר גישה לשרת האינטרנט של Airflow מכל כתובות ה-IP, צריך להשמיט את
webServerNetworkAccessControl.כדי להגביל את הגישה רק לטווחי IP ספציפיים, מציינים טווח אחד או יותר ב-
allowedIpRanges.כדי לחסום את הגישה לכל כתובות ה-IP, מוסיפים את
allowedIpRangesומשאירים את הרשימה ריקה. אל תציינו בו טווחי כתובות IP.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
WS_IP_RANGEבטווח ה-IP, בסימון CIDR, שיכול לגשת לממשק המשתמש של Airflow. -
WS_RANGE_DESCRIPTIONבתיאור של טווח כתובות ה-IP.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, הבלוק allowed_ip_range בבלוק web_server_network_access_control מכיל טווחי כתובות IP שיכולים לגשת לשרת האינטרנט.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
WS_IP_RANGEבטווח ה-IP, בסימון CIDR, שיכול לגשת לממשק המשתמש של Airflow. -
WS_RANGE_DESCRIPTIONבתיאור של טווח כתובות ה-IP.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "office net 1"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "office net 3"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
שלב 10. (אופציונלי) ציון של שינויים בהגדרות של Airflow ומשתני סביבה
כשיוצרים סביבה, אפשר להגדיר שינויים בהגדרות של Airflow ומשתני סביבה. אפשר גם לעשות את זה אחר כך, אחרי שיוצרים את הסביבה.
חלק מאפשרויות ההגדרה של Airflow חסומות ואי אפשר לשנות אותן.
רשימת אפשרויות ההגדרה הזמינות ב-Airflow מופיעה במאמר Configuration reference for Airflow 2 (הפניה להגדרות של Airflow 2) ובמאמר Airflow 1.10.* (הפניה להגדרות של Airflow 1.10.*).
כדי לציין שינויים בהגדרות של Airflow ומשתני סביבה:
המסוף
בדף Create environment:
בקטע Environment variables (משתני סביבה), לוחצים על Add environment variable (הוספת משתנה סביבה).
מזינים את השם והערך של משתנה הסביבה.
בקטע Airflow configuration overrides, לוחצים על Add Airflow configuration override.
מזינים את Section (קטע), Key (מפתח) ו-Value (ערך) כדי לשנות את אפשרות ההגדרה.
לדוגמה:
קטע מפתח ערך webserverdag_orientationTB
gcloud
כשיוצרים סביבה, הארגומנטים הבאים קובעים את משתני הסביבה ואת השינויים בהגדרות של Airflow:
--env-variablesמציין רשימה מופרדת בפסיקים של משתני סביבה.שמות המשתנים יכולים לכלול אותיות רישיות וקטנות, ספרות וקווים תחתונים, אבל הם לא יכולים להתחיל בספרה.
--airflow-configsמציין רשימה מופרדת בפסיקים של מפתחות וערכים לשינוי הגדרות Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
מחליפים את:
-
ENV_VARSברשימה מופרדת בפסיקים של צמדיNAME=VALUEלמשתני סביבה. -
CONFIG_OVERRIDESברשימה מופרדת בפסיקים של צמדיSECTION-KEY=VALUEלשינוי הגדרות. מפרידים את השם של קטע ההגדרה באמצעות הסמל-ואחריו שם המפתח. לדוגמה:core-dags_are_paused_at_creation.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
--airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB
API
כשיוצרים סביבה, מציינים את משתני הסביבה ואת השינויים בהגדרות של Airflow במשאב Environment > EnvironmentConfig.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"SECTION-KEY": "OVERRIDE_VALUE"
},
"envVariables": {
"VAR_NAME": "VAR_VALUE",
}
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
SECTIONהוא הקטע בקובץ התצורה שבו נמצאת אפשרות ההגדרה של Airflow. -
KEYבשם של אפשרות ההגדרה של Airflow. OVERRIDE_VALUEעם ערך של אפשרות ההגדרה של Airflow.VAR_NAMEבשם של משתנה הסביבה.VAR_VALUEבערך של משתנה הסביבה.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"core-dags_are_paused_at_creation": "True",
"webserver-dag_orientation": "TB"
},
"envVariables": {
"SENDGRID_MAIL_FROM": "user@example.com",
"SENDGRID_API_KEY": "example-key"
}
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
כשיוצרים סביבה, הבלוקים הבאים שולטים במשתני הסביבה ובשינויים בהגדרות של Airflow:
הבלוק
env_variablesבבלוקsoftware_configמציין משתני סביבה.שמות המשתנים יכולים לכלול אותיות רישיות וקטנות, ספרות וקווים תחתונים, אבל הם לא יכולים להתחיל בספרה.
הבלוק
airflow_config_overridesבבלוקsoftware_configמציין את ההגדרות של Airflow שצריך לשנות.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
airflow_config_overrides = {
SECTION-KEY = "OVERRIDE_VALUE"
}
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
SECTIONהוא הקטע בקובץ התצורה שבו נמצאת אפשרות ההגדרה של Airflow. -
KEYבשם של אפשרות ההגדרה של Airflow. OVERRIDE_VALUEעם ערך של אפשרות ההגדרה של Airflow.VAR_NAMEבשם של משתנה הסביבה.VAR_VALUEבערך של משתנה הסביבה.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
airflow_config_overrides = {
core-dags_are_paused_at_creation = "True"
webserver-dag_orientation = "TB"
}
env_variables = {
SENDGRID_MAIL_FROM = "user@example.com"
SENDGRID_API_KEY = "example-key"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
שלב 11. (אופציונלי) מציינים חלונות זמן לתחזוקה
חלונות הזמן לתחזוקה שמוגדרים כברירת מחדל ב-Managed Airflow (דור 3) מוגדרים באופן הבא:
- כל השעות הן באזור הזמן המקומי של האזור שבו נמצאת הסביבה שלכם, אבל בלי להתחשב בשעון קיץ.
- בימים שלישי, רביעי, חמישי ושישי, חלונות הזמן לתחזוקה הם בין 00:00:00 ל-02:00:00.
- בימים שבת, ראשון ושני, חלונות הזמן לתחזוקה הם בין 00:00:00 ל-04:00:00.
כדי לציין חלונות זמן מותאמים אישית לתחזוקה בסביבה שלכם:
המסוף
בדף Create environment
מאתרים את הקטע חלון זמן לתחזוקה.
ברשימה הנפתחת Timezone, בוחרים אזור זמן לחלונות הזמן לתחזוקה.
מגדירים את שעת ההתחלה, הימים ומשך הזמן, כך ש:
הקצאה של לפחות 12 שעות בשבוע אחד.
אפשר להשתמש בכמה משבצות זמן, אבל כל משבצת צריכה להיות באורך של 4 שעות לפחות.
לדוגמה, פרק זמן של 4 שעות בכל יום שני, רביעי ושישי מספק את משך הזמן הנדרש.
gcloud
הארגומנטים הבאים מגדירים את הפרמטרים של חלונות הזמן לתחזוקה:
--maintenance-window-startמגדיר את שעת ההתחלה של חלון הזמן לתחזוקה.-
--maintenance-window-endמגדיר את שעת הסיום של חלון הזמן לתחזוקה. -
--maintenance-window-recurrenceמגדיר את החזרה של חלון זמן לתחזוקה.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
DATETIME_STARTעם תאריך התחלה ושעת ההתחלה בפורמט הקלט של תאריך/שעה. המערכת משתמשת רק בשעה שצוינה ביום, ומתעלמת מהתאריך שצוין. -
DATETIME_ENDעם תאריך ושעת הסיום בפורמט הקלט של התאריך והשעה. המערכת משתמשת רק בשעה שצוינה ביום, ומתעלמת מהתאריך שצוין. התאריך והשעה שצוינו חייבים להיות אחרי תאריך ההתחלה.
MAINTENANCE_RECURRENCEעם RRULE של RFC 5545 לחלונות זמן חוזרים לתחזוקה. Managed Airflow תומך בשני פורמטים:הפורמט
FREQ=DAILYמציין חזרה יומית.הפורמט
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAמציין חזרה על הפעולה בימים נבחרים בשבוע.
בדוגמה הבאה מוגדר חלון זמן לתחזוקה של 6 שעות בין 01:00 ל-07:00 (UTC) בימי רביעי, שבת וראשון. המערכת מתעלמת מהתאריך 1 בינואר 2023.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--maintenance-window-start '2023-01-01T01:00:00Z' \
--maintenance-window-end '2023-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
כשיוצרים סביבה, מציינים את הפרמטרים של חלונות הזמן לתחזוקה במשאב Environment > EnvironmentConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
DATETIME_STARTעם תאריך התחלה ושעת ההתחלה בפורמט הקלט של תאריך/שעה. המערכת משתמשת רק בשעה שצוינה ביום, ומתעלמת מהתאריך שצוין. -
DATETIME_ENDעם תאריך ושעת הסיום בפורמט הקלט של התאריך והשעה. המערכת משתמשת רק בשעה שצוינה ביום, ומתעלמת מהתאריך שצוין. התאריך והשעה שצוינו צריכים להיות אחרי תאריך ההתחלה.
MAINTENANCE_RECURRENCEעם RFC 5545 RRULE לחלונות זמן לתחזוקה. Managed Airflow תומך בשני פורמטים:הפורמט
FREQ=DAILYמציין חזרה יומית.הפורמט
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAמציין חזרה על הפעולה בימים נבחרים בשבוע.
בדוגמה הבאה מוגדר חלון זמן לתחזוקה של 6 שעות בין 01:00 ל-07:00 (UTC) בימי רביעי, שבת וראשון. המערכת מתעלמת מהתאריך 1 בינואר 2023.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"maintenanceWindow": {
"startTime": "2023-01-01T01:00:00Z",
"endTime": "2023-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Terraform
הבלוק maintenance_window מציין את חלונות הזמן לתחזוקה של הסביבה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
maintenance_window {
start_time = "DATETIME_START"
end_time = "DATETIME_END"
recurrence = "MAINTENANCE_RECURRENCE"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
מחליפים את:
-
DATETIME_STARTעם תאריך התחלה ושעת ההתחלה בפורמט הקלט של תאריך/שעה. המערכת משתמשת רק בשעה שצוינה ומתעלמת מהתאריך שצוין. -
DATETIME_ENDעם תאריך ושעת הסיום בפורמט הקלט של התאריך והשעה. המערכת משתמשת רק בשעה שצוינה ביום, ומתעלמת מהתאריך שצוין. התאריך והשעה שצוינו צריכים להיות אחרי תאריך ההתחלה.
MAINTENANCE_RECURRENCEעם RFC 5545 RRULE לחלונות זמן לתחזוקה. Managed Airflow תומך בשני פורמטים:- הפורמט
FREQ=DAILYמציין חזרה יומית. - הפורמט
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAמציין חזרה על הפעולה בימים נבחרים בשבוע.
- הפורמט
בדוגמה הבאה מוגדר חלון זמן לתחזוקה של 6 שעות בין 01:00 ל-07:00 (UTC) בימי רביעי, שבת וראשון. המערכת מתעלמת מהתאריך 1 בינואר 2023.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2023-01-01T01:00:00Z"
end_time = "2023-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
שלב 12. (אופציונלי) שילוב של שושלת נתונים
שושלת נתונים היא תכונה של Knowledge Catalog שמאפשרת לעקוב אחרי תנועת הנתונים.
שילוב של מעקב אחר מקורות נתונים זמין בכל הגרסאות של Managed Airflow (דור 3).שילוב של מעקב אחר מקורות נתונים מופעל אוטומטית בסביבת Managed Airflow חדשה אם מתקיימים התנאים הבאים:
Data Lineage API מופעל בפרויקט. מידע נוסף זמין במאמר הפעלת Data Lineage API במסמכי התיעוד של Knowledge Catalog.
לא מוגדר Lineage Backend בהתאמה אישית ב-Airflow.
אתם יכולים להשבית את השילוב של מעקב אחר מקורות נתונים כשאתם יוצרים סביבה. לדוגמה, אם רוצים לבטל את ההתנהגות האוטומטית או להפעיל את מעקב מקורות הנתונים בשלב מאוחר יותר, אחרי יצירת הסביבה.
המסוף
כדי להשבית את השילוב של שושלת נתונים, בדף Create environment:
בקטע Advanced configuration, מרחיבים את Show advanced configuration.
בתפריט Knowledge Catalog Lineage integration, בוחרים באפשרות Disable integration with Knowledge Catalog Lineage.
gcloud
כשיוצרים סביבה, הארגומנט --disable-cloud-data-lineage-integration
משבית את השילוב של מעקב אחר מקורות נתונים.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--disable-cloud-data-lineage-integration
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה נמצאת.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--disable-cloud-data-lineage-integration
שלב 13. (אופציונלי) הגדרת הצפנת נתונים (CMEK)
כברירת מחדל, הנתונים בסביבה שלכם מוצפנים באמצעות מפתח שסופק על ידי Google.
כדי להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) להצפנת נתונים בסביבה שלכם, פועלים לפי ההוראות שמפורטות במאמר שימוש במפתחות הצפנה בניהול הלקוח.
שלב 14. (אופציונלי) שימוש בקטגוריה של סביבה מותאמת אישית
כשיוצרים סביבה, Managed Airflow יוצר באופן אוטומטי קטגוריה לסביבה.
לחלופין, אתם יכולים לציין קטגוריה של Cloud Storage בהתאמה אישית מהפרויקט שלכם. הסביבה שלכם משתמשת בקטגוריה הזו באותו אופן שבו היא משתמשת בקטגוריה שנוצרה באופן אוטומטי.
כדי להשתמש בקטגוריה של סביבה בהתאמה אישית, פועלים לפי ההוראות שמפורטות במאמר שימוש בקטגוריה של סביבה בהתאמה אישית.
שלב 15. (אופציונלי) הגדרת שמירת נתונים במסד הנתונים
אם מפעילים שמירת נתונים במסד הנתונים בסביבה, Managed Airflow מסיר באופן תקופתי ממסד הנתונים של Airflow רשומות שקשורות להרצות של DAG ולסשנים של משתמשים שהן ישנות יותר מתקופת הזמן שצוינה. המידע על ההרצה האחרונה של ה-DAG תמיד נשמר.
כברירת מחדל, שמירת מסד הנתונים מופעלת. כדי להגדיר את תקופת השמירה בסביבה חדשה או להשבית את השמירה במסד הנתונים, פועלים לפי ההוראות שמפורטות במאמר הגדרת מדיניות השמירה במסד הנתונים. אפשר גם להגדיר את שמירת הנתונים במסד הנתונים בהמשך.
שלב 16. (אופציונלי) ציון תוויות סביבה
אתם יכולים להקצות תוויות לסביבות כדי לפרק את עלויות החיוב על סמך התוויות האלה.
המסוף
בדף Create environment, בקטע Labels:
לוחצים על הוספת תווית.
בשדות Key ו-Value מציינים זוגות של מפתח וערך לתוויות הסביבה.
gcloud
כשיוצרים סביבה, הארגומנט --labels מציין רשימה של מפתחות וערכים שמופרדים בפסיקים עם תוויות סביבה.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
מחליפים את:
-
LABELSעם רשימה שלKEY=VALUEזוגות של תוויות לסביבה, מופרדים בפסיקים.
דוגמה:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.20 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--labels owner=engineering-team,env=production
API
כשיוצרים סביבה, במשאב Environment, מציינים תוויות לסביבה.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
מחליפים את:
-
LABEL_KEYבמפתח של תווית הסביבה. -
LABEL_VALUEעם ערך של תווית הסביבה.
דוגמה:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"labels": {
"owner": "engineering-team",
"env": "production"
}
}
Terraform
כשיוצרים סביבה, מציינים תוויות בבלוק labels (מחוץ לבלוק config).
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
labels = {
LABEL_KEY = "LABEL_VALUE"
}
}
מחליפים את:
-
LABEL_KEYבמפתח של תווית הסביבה. -
LABEL_VALUEעם ערך של תווית הסביבה.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
המאמרים הבאים
- פתרון בעיות ביצירת סביבה
- הגדרת VPC משותף
- הגדרת VPC Service Controls
- הוספה ועדכון של DAG
- גישה לממשק המשתמש של Airflow
- עדכון ומחיקה של סביבות
- מידע על גרסאות של Managed Airflow