הפעלת שמירת יומנים בקטגוריה של הסביבה

‫Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)

בדף הזה מוסבר איך להפעיל שמירה של יומני משימות של Airflow בדלי של הסביבה, בסביבה חדשה או קיימת.

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

מידע על שמירת יומנים בקטגוריה של הסביבה

שמירת יומנים בקטגוריה של הסביבה מתבצעת באופן הבא:

  • מושבת (ברירת מחדל): יומני המשימות זמינים ב-Cloud Logging. אפשר לראות אותם בממשק המשתמש של Airflow וב-Cloud Logging. קבצי יומן של משימות לא נשמרים בקטגוריה של הסביבה.

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

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

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

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

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

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

  • כדי להפעיל או להשבית את האפשרות הזו, אפשר להשתמש ב-Google Cloud CLI, ב-Cloud Composer API או ב-Terraform. אי אפשר לשנות את האפשרות הזו דרך מסוף Google Cloud .

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

gcloud

כשיוצרים סביבה, הארגומנטים הבאים מציינים איך צריך לשמור את יומני המשימות של Airflow:

  • הארגומנט --disable-logs-in-cloud-logging-only מאפשר לשמור את יומני המשימות של Airflow בדלי של הסביבה.
  • הארגומנט --enable-logs-in-cloud-logging-only משבית את השמירה של יומני המשימות של Airflow בדלי של הסביבה. היומנים נשמרים רק ב-Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

מחליפים את מה שכתוב בשדות הבאים:

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

דוגמה:

gcloud composer environments create example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

כשיוצרים סביבה, במשאב Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, מציינים איך לשמור את יומני המשימות של Airflow:

  • ‫CLOUD_LOGGING_AND_CLOUD_STORAGE כדי לשמור יומנים בקטגוריה של הסביבה וב-Cloud Logging.
  • ‫CLOUD_LOGGING_ONLY כדי לשמור יומנים רק ב-Cloud Logging.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ENVIRONMENT_NAME: השם של הסביבה.
  • ‫LOCATION: האזור שבו נמצאת הסביבה.
  • ‫PROJECT_ID: מזהה הפרויקט.

דוגמה:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Terraform

כשיוצרים סביבה, השדה storage_mode בבלוק task_logs_retention_config מציין איך צריך לשמור את יומני המשימות של Airflow:

  • ‫CLOUD_LOGGING_AND_CLOUD_STORAGE כדי לשמור יומנים בקטגוריה של הסביבה וב-Cloud Logging.
  • ‫CLOUD_LOGGING_ONLY כדי לשמור יומנים רק ב-Cloud Logging.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }

מחליפים את מה שכתוב בשדות הבאים:

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

דוגמה:

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

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }
}

הפעלה או השבתה של שמירת יומני משימות בקטגוריה של הסביבה בסביבה קיימת

gcloud

כשמעדכנים סביבה, הארגומנטים הבאים מאפשרים או משביתים את השמירה של יומני המשימות של Airflow בקטגוריה של הסביבה:

  • הארגומנט --disable-logs-in-cloud-logging-only מאפשר לשמור את יומני המשימות של Airflow בדלי של הסביבה. היומנים נשמרים בקטגוריה של הסביבה וב-Cloud Logging.
  • הארגומנט --enable-logs-in-cloud-logging-only משבית את השמירה של יומני המשימות של Airflow בדלי של הסביבה. היומנים נשמרים רק ב-Cloud Logging.

כדי לשמור את יומני Airflow בדלי של הסביבה:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

מחליפים את מה שכתוב בשדות הבאים:

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

דוגמה:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

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

  2. בבקשה הזו:

    1. בפרמטר updateMask, מציינים את config.dataRetentionConfig.taskLogsRetentionConfig.storageMode המסכה.

    2. בגוף הבקשה, מציינים איך צריך לשמור את יומני המשימות של Airflow:

      • ‫CLOUD_LOGGING_AND_CLOUD_STORAGE כדי לשמור את היומנים בקטגוריה של הסביבה וב-Cloud Logging.
      • ‫CLOUD_LOGGING_ONLY כדי לשמור יומנים רק ב-Cloud Logging.
{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

דוגמה:

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

{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Terraform

בבלוק task_logs_retention_config, בשדה storage_mode מציינים איך צריך לשמור את יומני המשימות של Airflow:

  • ‫CLOUD_LOGGING_AND_CLOUD_STORAGE כדי לשמור יומנים בקטגוריה של הסביבה וב-Cloud Logging.
  • ‫CLOUD_LOGGING_ONLY כדי לשמור יומנים רק ב-Cloud Logging.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }

מחליפים את מה שכתוב בשדות הבאים:

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

דוגמה:

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

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }
}

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