שדרוג סביבות

בדף הזה מוסבר איך לשדרג את הסביבה לגרסה חדשה של Airflow.

מידע על פעולות שדרוג

ב-Managed Airflow (דור 3), אתם לא מנהלים את גרסת Managed Airflow של הסביבה:

  • ‫Managed Airflow משדרג באופן אוטומטי את רכיבי התשתית של הסביבה. הרכיבים האלה קשורים לפונקציונליות של Managed Airflow, והם לא משנים את אופן הפעולה של Airflow או את אופן הביצוע של ה-DAG ב-Airflow.
  • ב-Managed Airflow, הגרסה וה-build של Airflow, רכיבי Airflow או רכיבים שקשורים באופן הדוק לעומסי העבודה של Airflow לא משודרגים באופן אוטומטי. הם לא משתנים כשמרכיבי התשתית משודרגים באופן אוטומטי.
  • אתם יכולים לשדרג ידנית לגרסה או ל-build חדשים של Airflow.

לדוגמה, אתם יכולים להשתמש באותה גרסה ובאותו build של Airflow במשך כמה חודשים בלי לבצע שדרוגים, והסביבה שלכם עדיין תקבל את העדכונים, התיקונים והשיפורים האחרונים של Managed Airflow לרכיבי התשתית של הסביבה. אם בהמשך תחליטו לעבור לגרסה או ל-build חדשים של Airflow, תוכלו לשדרג את גרסת Airflow בסביבה שלכם.

מידע על שדרוג הגרסה של Airflow

הסביבה משנה את הגרסה או ה-build של Airflow באופן הבא:

  • אתם קובעים את הגרסה (וה-build) של Airflow בסביבה שלכם. אתם יכולים לשדרג את גרסת Airflow כשאתם בוחרים להעביר את הסביבה לגרסה אחרת של Airflow. לדוגמה, יכול להיות שהגרסה וה-build הנוכחיים של Airflow כבר לא נתמכים.

  • ‫Managed Airflow פורס מחדש את רכיבי Airflow של הסביבה באמצעות הגרסה וה-build שצוינו של Airflow.

  • אם בסביבה שלכם היו שינויים בהגדרות של Airflow לפני השדרוג, כמו חבילות PyPI בהתאמה אישית או שינויים באפשרויות ההגדרה של Airflow, הם יחולו גם ב-Managed Airflow.

  • ‫Managed Airflow מעדכן את החיבור של Airflow airflow_db כך שיצביע על מסד הנתונים החדש של Cloud SQL.

שינוי הגרסה של Airflow לא משנה את אופן החיבור למשאבים בסביבה, כמו כתובת ה-URL של הקטגוריה בסביבה או שרת האינטרנט של Airflow.

מידע על פעולות שדרוג אוטומטיות של התשתית

‫Managed Airflow מפעיל מדי פעם פעולות שדרוג אוטומטיות של התשתית:

  • פעולות השדרוג האוטומטי של התשתית פועלות מדי פעם במהלך חלונות הזמן לתחזוקה שצוינו לסביבה.

  • אי אפשר להשבית את השדרוגים האוטומטיים של התשתית ב-Managed Airflow (דור 3). אתם יכולים לקבוע את פרקי הזמן שבהם השדרוגים האוטומטיים יכולים לפעול, על ידי הגדרת חלונות זמן מותאמים אישית לתחזוקה בסביבה שלכם.

  • הפעולה הזו גלויה במסוף Cloud de Confiance וביומני הסביבה, כמו כל פעולה ממושכת אחרת. בזמן שהפעולה פועלת, אי אפשר להתחיל פעולות אחרות ברמת הסביבה (אבל עדיין אפשר להריץ Airflow DAGs).

  • במקרים מסוימים, שדרוגים אוטומטיים של התשתית יכולים להפעיל מחדש את רכיבי Airflow. במהלך הפעלות מחדש כאלה, ה-workers של Airflow מסתיימים בצורה תקינה עם תקופת חסד של 24 שעות. אם יש לכם משימות שנדרשות יותר מ-24 שעות כדי להשלים אותן, כדאי להשתמש באופרטורים שניתן לדחות. שדרוג עלול לגרום לתקופה קצרה של חוסר זמינות של רכיבי התשתית של הסביבה, כמו מעקב אחרי הסביבה.

מגבלות על פעולות שדרוג וחזרה לגרסה קודמת

לפעולות השדרוג יש את המגבלות הבאות:

  • גרסאות Managed Airflow מושקות בהדרגה במשך כמה ימים בכל האזורים שנתמכים על ידי Managed Airflow. יכול להיות שהגרסה העדכנית של גרסה בתהליך עדיין לא זמינה באזור שלכם.

  • ב-Managed Airflow (דור 3), אתם יכולים לחזור לגרסה קודמת של Airflow, עם המגבלות הבאות:

    • אפשר לחזור לגרסה קודמת כשמשדרגים מגרסאות של Airflow 3, או מגרסאות של Airflow 2 החל מה-build‏ airflow-2.7.3-build.0.
    • אפשר לחזור לגרסה קודמת אם שדרגתם לגרסאות היעד airflow-2.11.1-build.20 ואילך, airflow-3.2.2-build.7 ואילך ו-airflow-3.3.1-build.3 ואילך.
    • אפשר להתחיל את פעולת החזרה לגרסה קודמת תוך 30 יום מהשדרוג. אם תאריך היעד של גרסת ה-Airflow עבר את תאריך סיום התמיכה, עדיין אפשר לחזור אליה. אפשר לבצע החזרה לגרסה קודמת תוך דילוג על גרסאות. אם שדרגתם יותר מפעם אחת ב-30 ימים, אתם יכולים לחזור לכל גרסה קודמת שהשתמשתם בה, כל עוד היא עומדת במגבלות הזכאות.
    • הסביבה נמצאת במצב RUNNING כשמתחילים את החזרה לגרסה קודמת.

  • אי אפשר לשדרג את הסביבה אם מסד הנתונים של Airflow מכיל יותר מ-20GB של נתונים. במהלך השדרוג, אם מסד הנתונים של Airflow גדול מ-20GB, תוצג אזהרה. במקרה כזה, מבצעים תחזוקה של מסד הנתונים כדי להקטין את הגודל שלו.

  • אם אתם משתמשים במנגנון XCom כדי להעביר קבצים, חשוב להשתמש בו בהתאם להנחיות של Airflow. העברת קבצים גדולים או מספר גדול של קבצים באמצעות XCom משפיעה על הביצועים של מסד הנתונים של Airflow, ויכולה לגרום לכשלים בטעינת קובצי snapshot או בשדרוג הסביבה. כדאי להשתמש בחלופות כמו Cloud Storage כדי להעביר כמויות גדולות של נתונים.

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

  • מומלץ ליצור קובץ Snapshot חדש של הסביבה כדי שתוכלו ליצור אותה מחדש במקרה הצורך.

  • בחשבון שלכם צריך להיות תפקיד שיכול להפעיל פעולות של שדרוג סביבה. בנוסף, לחשבון השירות של הסביבה צריך להיות תפקיד עם מספיק הרשאות כדי לבצע פעולות שדרוג. למידע נוסף על בקרת גישה

מוודאים שהסביבה מעודכנת

ב-Managed Airflow מוצגות אזהרות כשתאריך סיום התמיכה בגרסת ה-Airflow של הסביבה שלכם מתקרב. אתם יכולים להשתמש באזהרות האלה כדי לוודא שהסביבה שלכם תמיד נתמכת.

הודעת הוצאה משימוש מוצגת בדף פרטי הסביבה
תרשים 1. הודעת הוצאה משימוש מוצגת בדף הפרטים של הסביבה

ב-Managed Airflow מתבצע מעקב אחרי הגרסה וה-build של Airflow שעליהם הסביבה שלכם מבוססת. כשהסביבה מתקרבת לתאריך סיום התמיכה, מופיעה אזהרה ברשימת הסביבות ובדף Environment details.

כדי לבדוק אם הסביבה שלכם מעודכנת:

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Environments.

    כניסה לדף Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.

  3. עוברים לכרטיסייה Environment configuration.

  4. בשדה גרסת התמונה, מוצגת אחת מההודעות הבאות:

    • הגרסה העדכנית ביותר שזמינה. תמונת הסביבה נתמכת באופן מלא.

    • יש גרסה חדשה. יש תמיכה מלאה בתמונת הסביבה שלכם, ואתם יכולים לשדרג אותה לגרסה עדכנית יותר.

    • התמיכה בגרסת התמונה הזו תסתיים בעוד… תמונת הסביבה שלכם מתקרבת לסוף תקופת זכאות לתמיכה המלאה.

    • הגרסה הזו לא נתמכת החל מ… הסביבה שלכם עברה את תקופת הזכאות לתמיכה מלאה.

gcloud

הפונקציונליות הזו לא זמינה דרך Google Cloud CLI. במקום זאת, אתם יכולים לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.

API

הפונקציונליות הזו לא זמינה דרך API. במקום זאת, אתם יכולים לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.

הצגת השדרוגים המוצעים

ב-Managed Airflow יש רשימה של גרסאות build של Airflow שאפשר לשדרג אליהן את הסביבה.

כדי לראות את הגרסאות של Managed Airflow שמומלץ לשדרג אליהן:

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Environments.

    כניסה לדף Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.

  3. עוברים לכרטיסייה Environment configuration ולוחצים על Upgrade Image Version.

  4. כדי לראות את רשימת הגרסאות המוצעות, לוחצים על התפריט הנפתח Image version של Managed Airflow.

gcloud

gcloud composer environments list-upgrades \
  ENVIRONMENT_NAME \
  --location LOCATION

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.

דוגמה:

gcloud composer environments list-upgrades example-environment \
  --location us-central1

API

אתם יכולים לראות את הגרסאות הזמינות של מיקום מסוים. כדי לעשות את זה, יוצרים בקשת API מסוג imageVersions.list.

לדוגמה:

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

בדיקה אם יש התנגשויות בחבילות PyPI

אתם יכולים לבדוק אם יש התנגשויות בין חבילות PyPI שמותקנות בסביבה שלכם לבין חבילות שמותקנות מראש בגרסה או ב-build החדשים של Airflow.

אם הבדיקה מצליחה, סימן שאין התנגשויות בין יחסי התלות של חבילת PyPI בגרסה הנוכחית לבין אלה שבגרסה שצוינה. עם זאת, יכול להיות שפעולת השדרוג עדיין תיכשל מסיבות אחרות.

המסוף

כדי להריץ בדיקת שדרוג בסביבה שלכם:

  1. במסוף Cloud de Confiance , נכנסים לדף Environments.

    כניסה לדף Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.

  3. בכרטיסייה Environment configuration, מאתרים את הרשומה Image version ולוחצים על Upgrade.

  4. בתיבת הדו-שיח Environment version upgrade, ברשימה הנפתחת New version בוחרים את גרסת Airflow או ה-build שרוצים לשדרג אליהם.

  5. בקטע PyPI packages compatibility, לוחצים על Check for conflicts.

  6. מחכים עד שהבדיקה תסתיים. אם יש התנגשויות בין יחסי תלות של חבילות PyPI, הודעות השגיאה שמוצגות מכילות פרטים על החבילות ועל גרסאות החבילות שמתנגשות.

gcloud

כדי להריץ בדיקת שדרוג לסביבה, מריצים את הפקודה environments check-upgrade עם הגרסה או ה-build של Airflow שרוצים לשדרג אליהם.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫VERSION בגרסה וב-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.

דוגמה:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --airflow-version airflow-2.11.1-build.21

פלט לדוגמה:

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-3-airflow-2.11.1-build.21. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.

אפשר גם להריץ בדיקת שדרוג באופן אסינכרוני. משתמשים בארגומנט --async כדי לבצע קריאה אסינכרונית, ואז בודקים את התוצאה באמצעות הפקודה gcloud composer operations describe.

API

יוצרים בקשת API של environments.checkUpgrade.

מציינים את גרסת התמונה בשדה imageVersion:

{
  "imageVersion": "VERSION"
}

מחליפים את VERSION בגרסה החדשה שרוצים לשדרג אליה, בפורמט composer-3-airflow-x.y.z-build.t.

בדיקה אם יש התנגשויות עם Managed Airflow (דור 3)

‫Managed Airflow (דור 3) היא הגרסה הראשית האחרונה של Managed Airflow. אתם יכולים לבדוק אם אפשר לשדרג סביבת Managed Airflow (דור 2) ל-Managed Airflow (דור 3) באמצעות בדיקת שדרוג. התיאור הבא רלוונטי לסביבות Managed Airflow (דור שני).

אי אפשר להעביר את הסביבה מ-Managed Airflow (דור 2) ל-Managed Airflow (דור 3) במקום, אבל אפשר לבדוק אם יש בעיות תאימות באמצעות בדיקת שדרוג. מומלץ לעשות את זה לפני המעבר ל-Managed Airflow (דור 3).

כדי לבדוק את התאימות ל-Managed Airflow (דור 3), מבצעים בדיקת שדרוג רגילה של סביבת Managed Airflow (דור 2) ומציינים גרסה של Managed Airflow (דור 3) כיעד.

לכל התנגשות שמדווחת יכולים להיות הסוגים הבאים:

  • ‫BLOCKING מדווח על התנגשויות בין רכיבים לא תואמים של הגדרות סביבה שלא נתמכים ב-Managed Airflow (דור 3). מומלץ לטפל בהתנגשויות האלה לפני שמתחילים את ההעברה ל-Managed Airflow (דור 3).

  • ‫NON_BLOCKING מדווח על רכיבי הגדרת סביבה שונים ב-Managed Airflow (דור 3) ועלולים לגרום להתנהגות לא צפויה. לדוגמה, שינויים בערכי ברירת המחדל, כמו חלונות זמן לתחזוקה שמוגדרים כברירת מחדל, מדווחים כהתנגשויות שלא חוסמות. לפני שמתחילים את תהליך ההעברה, מומלץ לבדוק אם ההתנגשויות האלה יכולות לגרום לבעיות.

  • במסגרת הבדיקה הזו, המערכת מדווחת גם על התנגשויות בחבילות PyPI. הם מדווחים בנפרד מהתנגשויות בהגדרות, באותו אופן כמו בדיקת תאימות רגילה של חבילת PyPI.

המסוף

כדי לבדוק את התאימות ל-Managed Airflow (דור 3), צריך להשתמש ב-CLI של gcloud או ב-Cloud Composer API. מסוףCloud de Confiance תומך רק בבדיקות תאימות של חבילות PyPI.

gcloud

כדי לבדוק את התאימות ל-Managed Airflow (דור 3), מריצים את הפקודה environments check-upgrade ומציינים את גרסת Managed Airflow (דור 3) כיעד.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_3_VERSION

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫COMPOSER_3_VERSION בגרסה וב-build של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.

דוגמה:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2

דוגמאות להודעות על התנגשויות:

...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...

לחלופין, אפשר להריץ את הבדיקה הזו באופן אסינכרוני. משתמשים בארגומנט --async כדי לבצע קריאה אסינכרונית, ואז בודקים את התוצאה באמצעות הפקודה gcloud composer operations describe.

API

יוצרים בקשת API של environments.checkUpgrade.

מציינים את גרסת התמונה בשדה imageVersion:

{
  "imageVersion": "COMPOSER_3_VERSION"
}

מחליפים את COMPOSER_3_VERSION בגרסה וב-build של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.

שדרוג הסביבה

כדי לשדרג את הסביבה לגרסה או ל-build חדשים של Airflow:

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Environments.

    כניסה לדף Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.

  3. עוברים לכרטיסייה Environment configuration.

  4. מאתרים את הפריט גרסת תמונה ולוחצים על שדרוג.

  5. בתפריט הנפתח Image version, בוחרים את גרסת Airflow או ה-build שרוצים לשדרג אליהם.

  6. לוחצים על שדרוג.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫VERSION בגרסה וב-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר גם להשתמש בכל כינויי הגרסאות.

לדוגמה:

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.11.1-build.21

API

  1. יוצרים בקשת API של environments.patch.

  2. בבקשה הזו:

    1. בפרמטר updateMask, מציינים את המסכה config.softwareConfig.imageVersion.

    2. בגוף הבקשה, בשדה imageVersion, מציינים את הגרסה החדשה שאליה רוצים לשדרג.

לדוגמה:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-3-airflow-2.11.1-build.21"
      }
    }
  }

Terraform

השדה image_version בבלוק config.software_config קובע את הגרסה וה-build של Airflow בסביבה. בשדה הזה מציינים גרסה ו-build חדשים של Airflow.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • VERSION בגרסה וב-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר גם להשתמש בכל כינויי הגרסאות.

דוגמה:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "airflow-2.11.1-build.21"
    }
  }
}

חזרה לגרסה קודמת של שדרוג

אתם יכולים להחזיר את הסביבה לגרסה קודמת אם אתם נתקלים בבעיות בביצועים, בבאגים ב-Airflow או בבעיות תאימות עם ה-DAG, הפלאגינים או יחסי התלות שלכם.

אפשר לבטל את השדרוג תוך 30 יום מביצוע השדרוג, אם הסביבה נמצאת במצב RUNNING. אפשר לחזור לגרסאות שתאריך סיום התמיכה שלהן כבר עבר. מידע נוסף זמין במאמר המגבלות של פעולות השדרוג והחזרה לאחור.

בנוסף להחזרה לגרסה קודמת של שדרוג יחיד, אתם יכולים:

  • ביצוע כמה פעולות החזרה למצב קודם ברצף:

    דוגמה: A > B > C > B > A (אם החזרה לגרסאות B ו-A עומדת במגבלות).

  • חזרה לגרסה קודמת תוך דילוג על גרסאות:

    דוגמה: א' > ב' > ג' > א' (אם החזרה לא' עומדת במגבלות).

במהלך החזרה למצב קודם, רק ה-build של Airflow בסביבה חוזר לגרסה שצוינה. ב-Managed Airflow, הנתונים והמצב של הסביבה נשמרים במהלך החזרה לגרסה קודמת:

  • קובצי DAG והיסטוריית ההרצה: כל ההגדרות של ה-DAG, היסטוריית ההרצה של ה-DAG, מצבי המופעים של המשימות ו-XComs נשארים ללא שינוי במסד הנתונים של המטא-נתונים.

  • הגדרת הסביבה: המערכת שומרת את השינויים בהגדרות של Airflow, את משתני הסביבה, את חבילות ה-PyPI בהתאמה אישית ואת הגדרות ההתאמה לעומס. אם אתם משתמשים בדרישות לא מחמירות לגרסאות של חבילות PyPI בהתאמה אישית, יכול להיות שאחרי החזרה למצב הקודם תהיה בסביבה גרסה אחרת של החבילה (הגרסה הזו עדיין תעמוד בדרישות שצוינו לגרסה).

    אם שיניתם את הגדרות הסביבה במהלך השדרוג, למשל שינוי של משתני סביבה או התאמה של מגבלות המשאבים לרכיבי Airflow, השינויים האלה לא יבוטלו. אם צריך, אתם יכולים לבטל את השינויים באופן ידני לפני או אחרי החזרה לגרסה הקודמת.

  • יומנים ומעקב: יומני הביצוע של המשימות שמאוחסנים ב-Cloud Logging והיסטוריית המדדים ב-Cloud Monitoring נשמרים.

עדכונים של סכימת מסד הנתונים של Airflow (העברות Alembic) מוחזרים באופן אוטומטי למצב הקודם כדי להתאים לסכימה של גרסת היעד של Airflow. רשימה של העברות מסדי נתונים שקיימות בכל גרסה של Airflow מופיעה במאמר העברות של מסדי נתונים ב-Airflow במסמכי התיעוד של Airflow. במהלך פעולת החזרה למצב קודם, כל ההעברות שמופיעות ברשימה בין גרסת Airflow הנוכחית לבין גרסת היעד של Airflow מוחזרות למצב קודם.

איך מוצאים את הגרסה הקודמת שבה השתמשתם

כדי למצוא את הגרסה הקודמת:

gcloud

אתם יכולים למצוא מידע על גרסת התמונה שבה השתמשתם בעבר בפעולות הבאות:

gcloud composer operations list \
--locations LOCATION \
--filter='metadata.resource ~ "environments/ENVIRONMENT_NAME$" (metadata.operationType=UPDATE OR metadata.operationType=CREATE)'

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.

הפלט מכיל את יומן הפעולות בסביבה. הפעולה האחרונה מסוג UPDATE תהיה השדרוג שאתם רוצים לבטל. מוצאים את הפעולה UPDATE (או CREATE אם יש רק שדרוג אחד) שקדמה לה. בדרך כלל, זה הפריט הלפני אחרון ברשימה.

בדוגמה הבאה, הפעולה 71c3d5c9-5b26-4a98-8b19-7f62e9f4ed51 היא השדרוג שצריך לחזור ממנו לגרסה קודמת, והפעולה 63da3be2-3acf-4fb4-986a-90552a6df8b3 היא השדרוג לגרסה הקודמת שבה השתמשתם.

┌──────────────────────────────────────┬───────────────┬─────────────┬──────────────────────────────┬───────────┬─────────────────────────────┐
│                 UUID                 │      TYPE     │   LOCATION  │      TARGET_ENVIRONMENT      │   STATE   │         CREATE_TIME         │
├──────────────────────────────────────┼───────────────┼─────────────┼──────────────────────────────┼───────────┼─────────────────────────────┤
│ 71c3d5c9-5b26-4a98-8b19-7f62e9f4ed51 │ UPDATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2026-10-15T11:18:32.084039Z │
│ 63da3be2-3acf-4fb4-986a-90552a6df8b3 │ UPDATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2026-08-15T10:56:10.628514Z │
│ 4ebc18a9-25bb-4325-b4c9-0957c67c078b │ UPDATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2026-06-09T11:30:50.922080Z │
│ 8618f807-abb4-4fc8-9f5b-9353079f6e79 │ UPDATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2026-05-31T06:57:27.816925Z │
│ 22022864-0fa5-4d1b-92c6-c3f382b43a35 │ UPDATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2025-11-17T11:52:36.923698Z │
│ ec5bf071-e6c6-4760-b3c9-4a117cb08f7b │ CREATE        │ us-central1 │ example-environment          │ SUCCEEDED │ 2025-11-17T11:17:58.133979Z │
└──────────────────────────────────────┴───────────────┴─────────────┴──────────────────────────────┴───────────┴─────────────────────────────┘

תיאור הפעולה:

gcloud composer operations describe OPERATION_UUID \
  --location LOCATION \
  --format="value(response.config.softwareConfig.imageVersion)"

מחליפים את:

  • ‫OPERATION_UUID עם ה-UUID של פעולת השדרוג הקודמת שהתקבל באמצעות הפקודה הקודמת.
  • ‫LOCATION באזור שבו נמצאת הסביבה.

הפלט של הפקודה הזו הוא הגרסה הקודמת שבה השתמשתם.

מריצים את פעולת ההחזרה למצב הקודם

כדי להחזיר את הסביבה לגרסה קודמת של build או של Airflow:

המסוף

אי אפשר לבטל שדרוג במסוף Cloud de Confiance . במקום זאת, אפשר להשתמש ב-CLI של gcloud, ב-API או ב-Terraform.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫VERSION בגרסה וב-build החדשים של Airflow שרוצים לחזור אליהם, בפורמט airflow-x.y.z-build.t. אי אפשר להשתמש בכינויי גרסאות לפעולת החזרה למצב קודם.

דוגמה:

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.11.1-build.21

API

  1. יוצרים בקשת API של environments.patch.

  2. בבקשה הזו:

    1. בפרמטר updateMask, מציינים את המסכה config.softwareConfig.imageVersion.

    2. בגוף הבקשה, בשדה imageVersion, מציינים את הגרסה שאליה רוצים לחזור.

לדוגמה:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-3-airflow-2.11.1-build.21"
      }
    }
  }

Terraform

השדה image_version בבלוק config.software_config קובע את הגרסה וה-build של Airflow בסביבה שלכם. בשדה הזה, מציינים את הגרסה וה-build של Airflow שרוצים לחזור אליהם.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫VERSION בגרסה וב-build של Airflow שרוצים לחזור אליהם, בפורמט airflow-x.y.z-build.t. אי אפשר להשתמש בכינויי גרסאות לפעולת החזרה לאחור.

דוגמה:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "airflow-2.11.1-build.21"
    }
  }
}

אם פעולת החזרה לגרסה קודמת נכשלת במהלך הביצוע, Managed Airflow מנסה באופן אוטומטי לשחזר את הסביבה למצב שלפני הפעולה, כלומר לגרסה ול-build של Airflow שבהם השתמשתם לפני שהתחלתם את החזרה לגרסה קודמת. כדי לפתור את הבעיה, קוראים את הודעת השגיאה של הפעולה ואת היומנים ב-Cloud Logging.

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