使用自訂環境的值區

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

您可以在建立環境時,指定自訂 Cloud Storage 值區做為環境的值區。您的環境會以與預設環境值區相同的方式使用這個值區,且不會建立預設環境值區。

使用自訂值區時,您可以:

  • 使用符合需求的桶配置。
  • 使用持續存在的值區,用於定期開發或測試用途。
  • 重複使用先前環境中的現有值區,並保留 CI/CD 和資料整合。
  • 刪除環境並重新建立,無須在資料夾之間轉移資料。
  • 請先在自訂 bucket 中預先填入必要資料 (例如 DAG 檔案),然後建立環境。

事前準備

  • 這項功能適用於 Cloud Composer 2.5.0 以上版本。較舊版本的 Cloud Composer 2 不支援這項功能。
  • 自訂值區必須與環境位於相同區域。不支援多區域和雙區域值區。
  • 自訂值區和環境必須位於同一專案中。
  • 自訂值區必須採用 Standard Storage 級別
  • 自訂值區不得套用保留政策或保留政策鎖定
  • 您無法同時在多個環境中使用相同的自訂值區。如果指定的值區已由其他環境使用,Cloud Composer 會產生錯誤。您可以刪除環境,然後將相同的值區用於其他環境。

  • 如果您已啟用將記錄儲存至環境的值區,如果您刪除環境,然後將相同的值區用於另一個環境,新環境就不會在 Airflow UI 中顯示先前環境的 Airflow 工作記錄。記錄會保留在值區中,但新環境不會將記錄與任何 DAG 執行作業建立關聯。

  • 在使用 Cloud Storage 值區建立環境時,Cloud Composer 不會將任何缺少的 IAM 權限新增至該值區。請確認環境的服務帳戶具備值區的 Composer Worker 角色權限

使用自訂值區建立環境

主控台

如要在建立環境時指定自訂 Cloud Storage 值區,請按照下列步驟操作:

  1. 在「Create environment」頁面的「Advanced configuration」部分,按一下「Show advanced configuration」
  2. 選取「自訂值區」
  3. 在「值區名稱」欄位中指定或選取值區。

gcloud

建立環境時,--storage-bucket 引數會指定環境的自訂值區。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --storage-bucket CUSTOM_STORAGE_BUCKET

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • CUSTOM_STORAGE_BUCKET:Cloud Storage 值區的名稱。您也可以指定值區 URI (含 gs:// 前置字串)。

範例:

gcloud composer environments create example-environment \
    --location us-cental1 \
    --storage-bucket us-central1-example-bucket

API

建立環境時,請在「環境>StorageConfig」資源中,指定環境的自訂值區。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "storageConfig": {
    "bucket": "CUSTOM_STORAGE_BUCKET"
  }
}

更改下列內容:

  • PROJECT_ID專案 ID
  • LOCATION:環境所在的地區。
  • ENVIRONMENT_NAME:環境名稱。
  • CUSTOM_STORAGE_BUCKET:Cloud Storage 值區的名稱 (不含 gs:// 前置字串)。

範例:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "storageConfig": {
    "bucket": "us-central1-example-bucket"
  }
}

Terraform

建立環境時,storage_config 區塊中的 bucket 欄位會指定環境的自訂值區。

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

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • CUSTOM_STORAGE_BUCKET:Cloud Storage 值區的名稱。您也可以指定值區 URI (含 gs:// 前置字串)。

範例:

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

  storage_config {

    bucket = "gs://us-central1-example-bucket"

  }
}

後續步驟