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 值區,請按照下列步驟操作:
- 在「Create environment」頁面的「Advanced configuration」部分,按一下「Show advanced configuration」。
- 選取「自訂值區」。
- 在「值區名稱」欄位中指定或選取值區。
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"
}
}