הגדרה של משתני סביבה

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

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

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

לדוגמה, אפשר להשתמש בשם של משתנה סביבה כמו שהוא בפקודה שמופעלת על ידי BashOperator, או לקבל את הערך הזה מהאובייקט os.environ ב-DAG, או להשתמש במשתנה Airflow במקום זאת.

משתני הסביבה נשמרים. אחרי שמציינים משתנה סביבה, Airflow ממשיך להשתמש בו עד שמסירים את המשתנה מהסביבה.

ב-Managed Service for Apache Airflow מוגדרים משתני סביבה שמורים משלו לשליטה בסביבות.

פורמט השם

משתני הסביבה צריכים להתאים לביטוי הרגולרי [a-zA-Z_][a-zA-Z0-9_]*.

אפשרויות הגדרה של Airflow

אי אפשר לציין משתנים שמשנים את אפשרויות ההגדרה של Apache Airflow.

המשתנים לא יכולים להיות בפורמט AIRFLOW__{SECTION}__{KEY} או להתאים לביטוי הרגולרי AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. לדוגמה, אי אפשר להגדיר את AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.

במקום זאת, אפשר לשנות את אפשרויות ההגדרה של Airflow.

משתנים שמורים

שמות המשתנים הבאים שמורים על ידי Managed Airflow. אי אפשר ליצור משתנים עם השמות האלה.

  • AIRFLOW_DATABASE_VERSION
  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • AIRFLOW_WEBSERVER
  • AUTO_GKE
  • CLOUDSDK_METRICS_ENVIRONMENT
  • CLOUD_LOGGING_ONLY
  • COMPOSER_AGENT_BUILD_SERVICE_ACCOUNT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_ENVIRONMENT_SIZE
  • COMPOSER_GKE_LOCATION
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_OPERATION_UUID
  • COMPOSER_PYTHON_VERSION
  • COMPOSER_VERSION
  • CONTAINER_NAME
  • C_FORCE_ROOT
  • DAGS_FOLDER
  • GCE_METADATA_TIMEOUT
  • GCP_PROJECT
  • GCP_TENANT_PROJECT
  • GCSFUSE_EXTRACTED
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GKE_IN_TENANT
  • GOOGLE_APPLICATION_CREDENTIALS

  • MAJOR_VERSION

  • MINOR_VERSION

  • PATH

  • PIP_DISABLE_PIP_VERSION_CHECK

  • PORT

  • PROJECT_ID

  • PYTHONPYCACHEPREFIX

  • PYTHONWARNINGS

  • REDIS_PASSWORD

  • REDIS_PORT

  • REDIS_USER

  • SQL_DATABASE

  • SQL_HOST

  • SQL_INSTANCE

  • SQL_PASSWORD

  • SQL_PROJECT

  • SQL_REGION

  • SQL_USER

הגדרה של משתני סביבה לסביבות חדשות

אתם יכולים לציין משתני סביבה כשאתם יוצרים סביבה. מידע נוסף זמין במאמר יצירת סביבות.

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

המסוף

כדי להגדיר משתני סביבה בסביבה קיימת:

  1. במסוף Google Cloud , עוברים לדף Environments.

    מעבר אל Environments

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

  3. עוברים לכרטיסייה Environment variables ולוחצים על Edit.

  4. מוסיפים, משנים או מוחקים משתני סביבה בסביבה:

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

gcloud

הארגומנטים הבאים שולטים במשתני הסביבה:

  • --update-env-variables מציין רשימה של משתני סביבה שמופרדים בפסיקים, שצריך ליצור או לעדכן.

  • --remove-env-variables מציינת רשימה מופרדת בפסיקים של משתני סביבה למחיקה.

  • --clear-env-variables מוחק את כל משתני הסביבה הקיימים.

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --update-env-variables=NAME=VALUE

מחליפים את:

  • ENVIRONMENT_NAME בשם הסביבה.
  • LOCATION עם האזור שבו הסביבה ממוקמת.
  • NAME בשם המשתנה שרוצים ליצור או לעדכן.
  • VALUE בערך של המשתנה.
  • כדי להוסיף יותר ממשתנה אחד, מפרידים בין ההגדרות באמצעות פסיקים: NAME=VALUE,NAME=VALUE,....

דוגמה:

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test

API

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

בבקשה הזו:

  1. בפרמטר updateMask, מציינים את המסכה config.softwareConfig.envVariables כדי להחליף את כל המשתנים הקיימים במשתנים שצוינו. משתנים שלא מציינים נמחקים.

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

    {
      "config": {
        "softwareConfig": {
          "envVariables": {
            "VAR_NAME": "VAR_VALUE"
          }
        }
      }
    }
    

    מחליפים את:

    • VAR_NAME בשם של משתנה הסביבה.
    • VAR_VALUE בערך של משתנה הסביבה.
    • כדי להוסיף יותר ממשתנה אחד, מוסיפים עוד רשומות של משתנים ל-envVariables.

דוגמה:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables
{
  "config": {
    "softwareConfig": {
      "envVariables": {
        "EXAMPLE_VARIABLE": "True",
        "ANOTHER_VARIABLE": "test"
      }
    }
  }
}

Terraform

הבלוק env_variables בבלוק software_config מציין משתני סביבה.

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

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

מחליפים את:

  • ENVIRONMENT_NAME בשם הסביבה.
  • LOCATION עם האזור שבו הסביבה ממוקמת.
  • VAR_NAME בשם של משתנה הסביבה.
  • VAR_VALUE בערך של משתנה הסביבה.
  • כדי להוסיף יותר ממשתנה אחד, מוסיפים עוד רשומות של משתנים ל-env_variables.

דוגמה:

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

  config {

    software_config {

      env_variables = {
        EXAMPLE_VARIABLE = "True"
        ANOTHER_VARIABLE = "test"
      }
    }
  }
}

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