Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
在 Cloud Composer 2 中,您可以在创建环境时将自定义 Cloud Storage 存储桶指定为环境的存储桶。您的环境使用此存储桶的方式与默认环境的存储桶相同,并且系统不会创建默认环境的存储桶。
借助自定义存储桶,您可以:
- 使用符合您要求的存储桶配置。
- 使用持续存在的存储桶进行定期开发或测试。
- 重复使用以前环境中的现有存储桶,并保留 CI/CD 和数据集成。
- 删除并重新创建环境,而无需在存储分区之间转移数据。
- 使用所需的数据(例如 DAG 文件)预先填充自定义存储桶,然后创建环境。
准备工作
- Cloud Composer 2.5.0 版及更高版本支持此功能。Cloud Composer 2 的早期版本不支持此功能。
- 自定义存储桶必须与环境位于同一区域。不支持多区域和双区域存储分区。
- 自定义存储桶和环境必须位于同一项目中。
- 自定义存储桶必须具有 Standard 存储类别。
- 自定义存储桶不得应用任何保留政策或保留政策锁定。
- 您无法在多个环境中同时使用同一个自定义存储桶。如果指定的存储桶已被其他环境使用,则 Cloud Composer 会生成错误。您可以删除环境,然后将同一存储桶用于另一个环境。
- 如果您删除一个环境,然后将同一存储桶用于另一个环境,则新环境不会在 Airflow 界面中显示来自先前环境的 Airflow 任务日志。这些日志仍保留在存储桶中,但新环境不会将其与任何 DAG 运行相关联。
创建使用自定义存储桶的环境
控制台
要在创建环境时指定自定义 Cloud Storage 存储桶,请执行以下操作:
- 在创建环境页面的高级配置部分中,点击显示高级配置。
- 选择自定义存储桶。
- 在存储桶名称字段中,指定或选择存储桶。
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"
}
}