Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
建立環境時,您可以指定自訂 Cloud Storage bucket 做為環境的 bucket。您的環境會以與預設環境值區相同的方式使用這個值區,且不會建立預設環境值區。
自訂值區可讓您:
- 使用符合您需求的 bucket 設定。
- 如要定期開發或測試,請使用持續存在的 bucket。
- 重複使用先前環境的現有 bucket,並保留 CI/CD 和資料整合。
- 刪除並重新建立環境,不必在 bucket 之間轉移資料。
- 預先在自訂 bucket 中填入必要資料 (例如 DAG 檔案),然後建立環境。
事前準備
- 這項功能適用於 Cloud Composer 2.5.0 以上版本。較舊的 Cloud Composer 2 版本不支援這項功能。
- 自訂 bucket 必須與環境位於相同區域。不支援多區域和雙區域 bucket。
- 自訂 bucket 和環境必須位於同一專案。
- 自訂值區必須是Standard Storage 級別。
- 自訂值區不得套用保留政策或保留政策鎖定。
- 自訂 bucket 不得啟用階層命名空間。
您無法同時在多個環境中使用同一個自訂值區。如果指定的 bucket 已由其他環境使用,Cloud Composer 會產生錯誤。您可以刪除環境,然後將同一個值區用於其他環境。
如果您已啟用「將記錄檔儲存至環境的值區」,刪除環境後,如果將相同值區用於其他環境,新環境的 Airflow UI 就不會顯示先前環境的 Airflow 工作記錄。記錄檔仍會保留在值區中,但新環境不會將記錄檔與任何 DAG 執行作業建立關聯。
使用 Cloud Composer 建立環境時,系統不會為 Cloud Storage bucket 新增任何缺少的 IAM 權限。請確認環境的服務帳戶具備值區的 Composer Worker 角色權限。
使用自訂值區建立環境
主控台
如要在建立環境時指定自訂 Cloud Storage bucket:
- 在「建立環境」頁面的「進階設定」部分,按一下「顯示進階設定」。
- 選取「自訂值區」。
- 在「Bucket name」(值區名稱) 欄位中,指定或選取值區。
gcloud
建立環境時,--storage-bucket
引數會指定環境的自訂 bucket。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--storage-bucket CUSTOM_STORAGE_BUCKET
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的區域。CUSTOM_STORAGE_BUCKET
:Cloud Storage bucket 的名稱。您也可以指定 bucket URI (加上gs://
前置字串)。
範例:
gcloud composer environments create example-environment \
--location us-cental1 \
--storage-bucket us-central1-example-bucket
API
建立環境時,請在「Environment」>「StorageConfig」StorageConfig資源中,為環境指定自訂 bucket。
{
"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 bucket 的名稱 (不含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 bucket 的名稱。您也可以指定 bucket URI (加上gs://
前置字串)。
範例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
storage_config {
bucket = "gs://us-central1-example-bucket"
}
}