使用自定义环境的存储桶

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 存储桶,请执行以下操作:

  1. 创建环境页面的高级配置中 部分中,点击显示高级配置
  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"

  }
}

后续步骤