Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
ל-Apache Airflow יש ממשק שורת פקודה (CLI) שבעזרתו אפשר לבצע משימות כמו הפעלה וניהול של DAG, קבלת מידע על הפעלות ומשימות של DAG, הוספה ומחיקה של חיבורים ומשתמשים.
פקודות נתמכות ב-Airflow CLI
Airflow משתמש בתחביר של Airflow CLI, שמתואר במסמכי התיעוד של Airflow.
Managed Airflow (דור 3) תומך בפקודות הבאות של Airflow CLI:
(Airflow 2 ו-3) הפקודה
gcloud composer environments runמריצה פקודות Airflow CLI עבור הסביבה שלכם. חלק מהפקודות חסומות ואי אפשר להריץ אותן. במאמר העזר על הפקודה מופיעה רשימה של פקודות נתמכות ב-Airflow CLI.(Airflow 3) כלי שורת הפקודה
airflowctlתומך בקבוצת משנה של פקודות Airflow CLI ומריץ אותן באמצעות API בארכיטקטורת REST של Airflow. כל הפקודות שזמינות ב-airflowctlנתמכות ב-Managed Airflow. מוודאים שלמשתמש בחשבון Airflow יש תפקיד ב-Airflow שיכול להריץ פקודה ספציפית.
לפני שמתחילים
כדי להריץ פקודות Airflow CLI דרך Google Cloud CLI:
לחשבון Google שלכם צריכות להיות הרשאות לשימוש ב-Google Cloud CLI עם Managed Airflow ולהרצת פקודות Airflow CLI.
פקודות Airflow CLI שמופעלות דרך Google Cloud CLI צורכות את
environments.executeAirflowCommandהמכסה.
כדי להריץ פקודות Airflow CLI באמצעות כלי שורת הפקודה airflowctl (ב-Airflow 3):
צריכה להיות לכם הרשאה מסוג
composer.environments.getבחשבון Google. ההרשאה הזו ניתנת על ידי התפקיד שיכול לצפות בסביבות Managed Airflow. כלי שורת הפקודהairflowctlלא דורש הרשאות להרצת פקודות Airflow CLI.פקודות Airflow CLI שמופעלות דרך
airflowctlלא צורכות את המכסה שלenvironments.executeAirflowCommand.
הרצת פקודות Airflow CLI באמצעות ה-CLI של gcloud
כדי להריץ פקודות של Airflow CLI בסביבות שלכם, משתמשים ב-CLI של gcloud:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
מחליפים את מה שכתוב בשדות הבאים:
-
ENVIRONMENT_NAME: השם של הסביבה. -
LOCATION: האזור שבו נמצאת הסביבה. -
SUBCOMMAND: אחת מהפקודות הנתמכות של Airflow CLI. -
SUBCOMMAND_ARGUMENTSעם ארגומנטים לפקודת Airflow CLI.
מפריד של ארגומנטים של פקודות משנה
מפרידים בין הארגומנטים של פקודת Airflow CLI שצוינה באמצעות --:
- מציינים פקודות מורכבות ב-CLI כפקודת משנה.
- אם מזינים פקודות מורכבות, צריך לציין את הארגומנטים שלהן כארגומנטים של פקודות משנה, אחרי המפריד
--.
דוגמה:
gcloud composer environments run example-environment \
dags list -- --output=json
מיקום ברירת המחדל
רוב הפקודות של gcloud composer דורשות מיקום. אפשר לציין את המיקום באמצעות הדגל --location או על ידי הגדרת מיקום ברירת מחדל.
לדוגמה, כדי להפעיל DAG בשם sample_quickstart עם המזהה 5077 בסביבת Managed Airflow:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
הרצת פקודות Airflow CLI באמצעות airflowctl
כלי שורת הפקודה airflowctl הוא כלי שורת פקודה ש-Airflow מספק להרצת פקודות Airflow CLI. הוא תומך בקבוצת משנה של פקודות Airflow CLI ומריץ אותן באמצעות Airflow API בארכיטקטורת REST. כל הפקודות שזמינות ב-airflowctl נתמכות ב-Managed Airflow.
איך עובד אימות והרשאה ב-airflowctl ב-Managed Airflow:
מכיוון ש-
airflowctlמשתמש ב-API בארכיטקטורת REST של Airflow, צריך לוודא שלחשבון המשתמש ב-Airflow שמשויך לחשבון Google או לחשבון השירות שלכם יש תפקיד ב-Airflow עם הרשאות מספיקות להפעלת פקודה. לדוגמה, יש פקודות שרק משתמשי Airflow עם התפקידAdminיכולים להריץ.טוקן ה-API שבו משתמשת
airflowctlמסופק באמצעות הפקודהgcloud auth application-default print-access-token. כברירת מחדל, תקופת התפוגה של האסימון היא שעה אחת. אפשר לשנות את זה באמצעות הארגומנט--lifetimeשמועבר לפקודה הזו.
כדי לבצע אימות באמצעות airflowctl, מריצים את הפקודה הבאה:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth application-default print-access-token)
מחליפים את מה שכתוב בשדות הבאים:
-
WEB_SERVER_URL: כתובת ה-URL של שרת האינטרנט של Airflow. חשוב לוודא שאין קו נטוי (/) בסוף כתובת ה-URL.
דוגמה:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth application-default print-access-token)
אחרי שמבצעים אימות באמצעות airflowctl, אפשר להריץ פקודות Airflow CLI:
airflowctl dags list
הפעלת פקודות Airflow CLI דרך Cloud Composer API
ב-Managed Airflow (דור 3), אפשר להריץ פקודות Airflow CLI דרך Cloud Composer API.
הרצת פקודה
יוצרים בקשת API של environments.executeAirflowCommand:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
LOCATION: האזור שבו נמצאת הסביבה. -
ENVIRONMENT_NAME: השם של הסביבה. -
AIRFLOW_COMMAND: פקודת Airflow CLI שרוצים להריץ, כמוdags. -
AIRFLOW_SUBCOMMAND: פקודת משנה של פקודת Airflow CLI שרוצים להריץ, כמוlist. - (אופציונלי)
SUBCOMMAND_PARAMETER: פרמטרים של פקודת המשנה. אם רוצים להשתמש ביותר מפרמטר אחד, מוסיפים עוד פריטים לרשימה.
דוגמה:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
"environment": "projects/example-project/locations/us-central1/environments/example-environment",
"command": "dags",
"subcommand": "list",
"parameters": [
"-o json",
"--verbose"
]
}
בדיקת סטטוס הפקודה
אחרי שמריצים פקודת Airflow CLI דרך Cloud Composer API, בודקים אם הפקודה הושלמה בהצלחה על ידי שליחת בקשת PollAirflowCommand ובדיקת השדות ב-exitInfo כדי לראות אם יש שגיאות וקודי סטטוס. השדה output מכיל שורות ביומן.
כדי לקבל את סטטוס הביצוע של הפקודה ולאחזר יומנים, צריך לספק את הערכים executionId, pod ו-podNamespace שמוחזרים על ידי ExecuteAirflowCommandRequest:
דוגמה:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
"executionId": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
"pod": "airflow-webserver-66d96b858f-tn96b",
"podNamespace": "airflow-2-10-2-build-13-226523e4",
"nextLineNumber": 1
}