Menetapkan variabel lingkungan

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara menetapkan variabel lingkungan di lingkungan Cloud Composer Anda.

Anda dapat menggunakan variabel lingkungan sebagai alternatif untuk variabel Airflow saat memberikan konfigurasi runtime untuk DAG. Variabel Airflow ditetapkan di database Airflow, sedangkan variabel lingkungan ditetapkan di penampung pekerja Airflow.

Sebagai contoh, Anda dapat menggunakan nama variabel lingkungan seperti dalam perintah yang dijalankan oleh BashOperator, atau mendapatkan nilai ini dari objek os.environ dalam DAG, atau menggunakan variabel Airflow.

Variabel lingkungan bersifat persisten. Setelah Anda menentukan variabel lingkungan, Airflow akan terus menggunakannya hingga Anda menghapus variabel dari lingkungan.

Cloud Composer menetapkan variabel lingkungan yang dicadangkannya sendiri untuk mengontrol lingkungan.

Format nama

Variabel lingkungan harus cocok dengan ekspresi reguler [a-zA-Z_][a-zA-Z0-9_]*.

Opsi konfigurasi Airflow

Anda tidak dapat menentukan variabel yang mengubah opsi konfigurasi Apache Airflow.

Variabel tidak dapat menggunakan format AIRFLOW__{SECTION}__{KEY} atau cocok dengan ekspresi reguler AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Misalnya, Anda tidak dapat menetapkan AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.

Sebagai gantinya, Anda dapat mengganti opsi konfigurasi Airflow.

Variabel yang dicadangkan

Nama variabel berikut dikhususkan untuk penggunaan Cloud Composer. Anda tidak dapat membuat variabel dengan nama ini.

  • AIRFLOW_DATABASE_VERSION
  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • AIRFLOW_WEBSERVER
  • AUTO_GKE
  • CLOUDSDK_METRICS_ENVIRONMENT
  • CLOUD_LOGGING_ONLY
  • COMPOSER_ENVIRONMENT
  • 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
  • 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
  • SQL_DATABASE
  • SQL_HOST
  • SQL_INSTANCE
  • SQL_PASSWORD
  • SQL_PROJECT
  • SQL_REGION
  • SQL_USER

Menetapkan variabel lingkungan untuk lingkungan baru

Anda dapat menentukan variabel lingkungan saat membuat lingkungan. Untuk mengetahui informasi selengkapnya, lihat Membuat lingkungan.

Menetapkan variabel lingkungan untuk lingkungan yang ada

Konsol

Untuk menetapkan variabel lingkungan untuk lingkungan yang ada:

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Environment variables, lalu klik Edit.

  4. Tambahkan, ubah, atau hapus variabel lingkungan untuk lingkungan Anda:

    • Di kolom Name, tentukan nama variabel.
    • Di kolom Value, tentukan nilai variabel.
    • Untuk menambahkan variabel tambahan, klik Tambahkan variabel lingkungan.
    • Untuk menghapus variabel, tahan kursor di atas variabel, lalu klik Hapus item.

gcloud

Argumen berikut mengontrol variabel lingkungan:

  • --update-env-variables menentukan daftar variabel lingkungan yang dipisahkan koma untuk dibuat atau diperbarui.

  • --remove-env-variables menentukan daftar variabel lingkungan yang dipisahkan koma yang akan dihapus.

  • --clear-env-variables menghapus semua variabel lingkungan yang ada.

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

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan tersebut berada.
  • NAME dengan nama variabel yang ingin Anda buat atau perbarui.
  • VALUE dengan nilai untuk variabel.
  • Untuk menambahkan lebih dari satu variabel, pisahkan definisi dengan koma: NAME=VALUE,NAME=VALUE,....

Contoh:

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

API

Buat permintaan API environments.patch.

Dalam permintaan ini:

  1. Dalam parameter updateMask, tentukan mask config.softwareConfig.envVariables untuk mengganti semua variabel yang ada dengan variabel yang ditentukan. Variabel yang tidak Anda tentukan akan dihapus.

  2. Dalam isi permintaan, tentukan variabel dan nilainya:

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

    Ganti:

    • VAR_NAME dengan nama variabel lingkungan.
    • VAR_VALUE dengan nilai variabel lingkungan.
    • Untuk menambahkan lebih dari satu variabel, tambahkan entri tambahan untuk variabel ke envVariables.

Contoh:

// 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

Blok env_variables di blok software_config menentukan variabel lingkungan.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan tersebut berada.
  • VAR_NAME dengan nama variabel lingkungan.
  • VAR_VALUE dengan nilai variabel lingkungan.
  • Untuk menambahkan lebih dari satu variabel, tambahkan entri tambahan untuk variabel ke env_variables.

Contoh:

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

  config {

    software_config {

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

Langkah selanjutnya