创建 Cloud Composer 环境

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

本页面介绍了如何创建 Cloud Composer 环境。

准备工作

  • 如果您使用 Terraform 创建环境,则 Terraform 使用的服务账号必须具有启用了 composer.environments.create 权限的角色

    如需详细了解 Terraform 的服务账号,请参阅 Google 提供方配置参考文档

    如需详细了解如何使用 Terraform 创建 Cloud Composer 环境,请参阅 Terraform 文档

    如需详细了解其他参数,请参阅 Terraform 参数参考

  • VPC SC:如需在安全边界内部署 Cloud Composer 环境,请参阅配置 VPC SC。与 Cloud Composer 搭配使用时,VPC Service Controls 有多项已知限制

第 1 步:基本设置

此步骤会在指定位置创建一个使用默认参数的 Cloud Composer 环境。

控制台

  1. 在 Google Cloud 控制台中,前往创建环境页面。

    转到“创建环境”

  2. 名称字段中,为环境输入名称。

    该名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。该环境名称用于创建环境的子组件,因此您必须提供一个有效的 Cloud Storage 存储桶名称。如需查看限制列表,请参阅存储桶命名准则

  3. 位置下拉列表中,为您的环境选择一个位置。

    位置是指环境所在的区域。

  4. 映像版本下拉列表中,选择所需 Airflow 版本的 Cloud Composer 映像

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。

    该名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。该环境名称用于创建环境的子组件,因此您必须提供一个有效的 Cloud Storage 存储桶名称。如需查看限制列表,请参阅存储桶命名准则

  • LOCATION 替换为环境的区域。

    位置是指环境所在的区域。

  • IMAGE_VERSION 替换为 Cloud Composer 映像的名称。

示例:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3

API

构建 environments.create API 请求。在 Environment 资源中指定配置。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "IMAGE_VERSION"
    }
  }
}

您需要将其中的:

  • PROJECT_ID 替换为项目 ID

  • LOCATION 替换为环境的区域。

    位置是环境所在的区域。

  • ENVIRONMENT_NAME 替换为环境名称。

    该名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。该环境名称用于创建环境的子组件,因此您必须提供一个有效的 Cloud Storage 存储桶名称。如需查看限制列表,请参阅存储桶命名准则

  • IMAGE_VERSION 替换为 Cloud Composer 映像的名称。

示例:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-3-airflow-2.9.3-build.3"
    }
  }
}

Terraform

要使用默认参数创建指定位置的环境,请将以下资源块添加到您的 Terraform 配置并运行 terraform apply

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

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。

    该名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。该环境名称用于创建环境的子组件,因此您必须提供一个有效的 Cloud Storage 存储桶名称。如需查看限制列表,请参阅存储桶命名准则

  • LOCATION 替换为环境的区域。

    位置是指环境所在的区域。

  • IMAGE_VERSION 替换为 Cloud Composer 映像的名称。

示例:

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

  config {
    software_config {
      image_version = "composer-3-airflow-2.9.3-build.3"
    }
  }
}

第 2 步:(可选)为您的环境选择服务账号

Cloud Composer 会将此服务账号绑定到您的环境的 Kubernetes 服务账号。环境集群中的节点作为 并使用这些绑定来访问 Google Cloud 项目,例如您的 环境的存储桶中。

默认情况下,Cloud Composer 环境使用默认的 Compute Engine 服务账号。我们建议您为 Cloud Composer 环境设置用户管理的服务账号

您以后无法更改环境的服务账号。

控制台

创建环境页面的服务账号下拉列表中,为您的环境选择一个服务账号。

gcloud

创建环境时,--service-account 会为您的环境指定服务账号。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --service-account "SERVICE_ACCOUNT"

替换:

  • SERVICE_ACCOUNT 替换为您的环境的服务账号。

例如:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

创建环境时,请在环境 > EnvironmentConfig 资源中为您的环境指定一个服务账号。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
}

您需要将其中的:

  • SERVICE_ACCOUNT 替换为您的环境的服务账号。

例如:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Terraform

创建环境时,请使用 node_config 代码块中的 service_account 字段。

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

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

替换:

  • SERVICE_ACCOUNT 替换为您的环境的服务账号。

例如:

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

  config {
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

第 3 步:(可选)配置环境规模和性能参数

如需为您的环境指定扩缩和性能配置,请选择环境大小和工作负载配置。

您可以在创建环境后更改所有性能和扩缩参数。

以下参数可控制规模和性能:

  • 环境大小。控制包含 Airflow 数据库的代管式 Cloud Composer 基础架构的性能参数。如果您希望运行大量 DAG 和任务并提高基础架构性能,请考虑选择较大的环境大小。对于 例如,环境越大,Airflow 任务日志量就越大 您的环境能够以最短延迟时间处理的日志条目。

  • 工作负载配置。控制在 GKE 集群中运行的环境组件的规模和性能:Airflow 调度器、Airflow 网络服务器和 Airflow 工作器。

    • Airflow 调度器。解析 DAG 文件,根据时间表间隔安排 DAG 运行,并将任务排队以待 Airflow 工作器执行。

      您的环境可以同时运行多个 Airflow 调度器。使用多个调度器在多个调度器实例之间分配负载,以实现更好的性能和可靠性。

      增加调度器的数量并不总是可以提高 Airflow 性能。例如,仅使用一个调度器的性能可能优于使用两个调度器。如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。

      我们建议您先使用两个调度器,然后再监控环境的性能。如果您更改调度器的数量,则可以随时将环境扩缩回原始调度器的数量。

      如需详细了解如何配置多个调度器,请参阅 Airflow 文档

    • Airflow 触发器。异步监控 环境如果您的 (在高弹性环境中,则至少要有 2 个), 在 DAG 中使用可延期运算符

    • Airflow DAG 处理器。处理 DAG 文件并将其转换为 DAG 对象。在 Cloud Composer 3 中,调度程序的这一部分作为 独立的环境组件

    • Airflow 网络服务器。运行 Airflow 网页界面,您可在此界面中监控、管理和直观呈现 DAG。

    • Airflow 工作器。执行由 Airflow 调度器执行的任务。环境中的工作器数量下限和上限会动态变化,具体取决于队列中的任务数量。

控制台

您可以为环境选择预设。选择预设时,系统会自动选择该预设的扩缩和性能参数。您还可以选择自定义预设,并指定环境的所有扩缩和性能参数。

如需为您的环境选择容量和性能配置,请在创建环境页面上执行以下操作:

  • 如需使用预定义的值,请在环境资源部分中点击

  • 要为规模和性能参数指定自定义值,请执行以下操作:

    1. 环境资源部分中,点击自定义

    2. 调度器部分中,设置您希望 以及 CPU、内存和存储空间的资源分配。

    3. 触发器部分中,使用触发器数量字段 以输入您环境中的触发器数量。如果您不想在 DAG 中使用可延期运算符,可以将此数字设为 0

      如果您为环境设置了至少一个触发器,请使用 CPUMemory 字段以配置资源分配 。

    4. DAG 处理器部分,指定 DAG 处理器的数量 满足您的需求 每个 DAG 处理器

    5. 网络服务器部分中,指定 Web 服务器的 CPU、内存和存储空间量。

    6. Worker 部分中,指定以下内容:

      • 您环境中自动扩缩限制的工作器数量下限和上限。
      • 工作器的 CPU、内存和存储空间分配
    7. 核心基础架构部分的环境大小下拉列表中,选择环境大小。

gcloud

创建环境时,以下参数用于控制 您的环境的扩缩和性能参数。

  • --environment-size 用于指定环境大小。
  • --scheduler-count 用于指定调度器的数量。
  • --scheduler-cpu 用于指定 Airflow 调度器的 CPU 数量。
  • --scheduler-memory 用于指定 Airflow 调度器的内存量。
  • --scheduler-storage 用于指定 Airflow 调度器的磁盘空间。

  • --triggerer-count 用于指定环境中的 Airflow 触发器数量。此标志的默认值为 0。 如果您想在 DAG 中使用可延期运算符,则需要触发器。

    • 对于标准弹性环境,请使用 010
    • 对于高度弹性环境,请使用 0 或介于 210 之间的值。
  • --triggerer-cpu 用于指定 Airflow 触发器的 CPU 数量(以 vCPU 为单位)。允许使用的值有:0.50.751。默认值为 0.5

  • --triggerer-memory 用于指定 Airflow 触发器(以 GB 为单位)。默认值为 0.5

    所需的最小内存等于为 触发器。允许的最大值等于 触发器 CPU 数乘以 6.5。

    例如,如果您将 --triggerer-cpu 标志设置为 1,则 --triggerer-memory最小值1,且 最大值6.5

  • --dag-processor-cpu 用于指定 DAG 处理器的 CPU 数量。

  • --dag-processor-memory 用于指定 DAG 处理器的内存量。

  • --dag-processor-storage 指定 DAG 的磁盘空间量 处理器。

  • --web-server-cpu 用于指定 Airflow Web 服务器的 CPU 数量。

  • --web-server-memory 用于指定 Airflow Web 服务器的内存量。

  • --web-server-storage 用于指定 Airflow 网络服务器的磁盘空间。

  • --worker-cpu 用于指定 Airflow 工作器的 CPU 数量。

  • --worker-memory 用于指定 Airflow 工作器的内存量。

  • --worker-storage 用于指定 Airflow 工作器的磁盘空间。

  • --min-workers 用于指定 Airflow 工作器数量下限。您的环境的集群至少运行此数量的工作器。

  • --max-workers 用于指定 Airflow 工作器数量上限。您的环境的集群最多运行此数量的工作器。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --environment-size ENVIRONMENT_SIZE \
    --scheduler-count SCHEDULER_COUNT \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE \
    --min-workers WORKERS_MIN \
    --max-workers WORKERS_MAX

替换:

  • ENVIRONMENT_SIZE 替换为 smallmediumlarge
  • SCHEDULER_COUNT 替换为调度器的数量。
  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小。
  • TRIGGERER_COUNT 替换为触发器数量。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。
  • TRIGGERER_MEMORY 替换为触发器的内存量(以 GB 为单位)。

  • DAG_PROCESSOR_CPU 替换为 DAG 处理器的 CPU 数量。

  • DAG_PROCESSOR_MEMORY 替换为 DAG 的内存量 处理器。

  • DAG_PROCESSOR_STORAGE 替换为 DAG 的磁盘空间量 处理器。

  • WEB_SERVER_CPU 替换为网络服务器的 CPU 数量(以 vCPU 为单位)。

  • WEB_SERVER_MEMORY 替换为网络服务器的内存量。

  • WEB_SERVER_STORAGE 替换为网络服务器的内存量。

  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。

  • WORKER_MEMORY 替换为工作器的内存量。

  • WORKER_STORAGE 替换为工作器的磁盘大小。

  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。

  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

例如:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --environment-size small \
    --scheduler-count 1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB \
    --scheduler-storage 2GB \
    --triggerer-count 1 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5GB \
    --dag-processor-cpu 0.5 \
    --dag-processor-memory 2GB \
    --dag-processor-storage 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB \
    --min-workers 2 \
    --max-workers 4

API

创建环境时,在环境 >EnvironmentConfig > WorkloadsConfig 资源,指定环境 规模和性能参数。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE,
        "count": SCHEDULER_COUNT
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      },
      "dagProcessor": {
        "count": 1,
        "cpu": DAG_PROCESSOR_CPU,
        "memoryGb": DAG_PROCESSOR_MEMORY,
        "storageGb": DAG_PROCESSOR_STORAGE
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE,
        "minCount": WORKERS_MIN,
        "maxCount": WORKERS_MAX
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE"
  }
}

替换:

  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量(以 GB 为单位)。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小(以 GB 为单位)。
  • SCHEDULER_COUNT 替换为调度器的数量。

  • TRIGGERER_COUNT 替换为触发器数量。默认值为 0。 如果您想要执行以下操作,则需要触发器 在 DAG 中使用可延期运算符

    • 对于标准弹性环境,请使用介于 010 之间的值。
    • 对于高度弹性环境,请使用 0 或介于 210 之间的值。

    如果您使用至少一个触发器,则还必须指定 TRIGGERER_CPUTRIGGERER_MEMORY 参数:

  • TRIGGERER_CPU 指定触发器的 CPU 数量, 以 vCPU 为单位允许使用的值有:0.50.751

  • TRIGGERER_MEMORY 用于配置触发器的内存量。所需的最低内存等于为触发器分配的 CPU 数量。允许的最大值为 等于触发器 CPU 数量乘以 6.5。

    例如,如果您将 TRIGGERER_CPU 设置为 1,则 TRIGGERER_MEMORY最小值1,且 最大值6.5

  • DAG_PROCESSOR_CPU 替换为 DAG 处理器的 CPU 数量(以 vCPU 为单位)。

  • DAG_PROCESSOR_MEMORY 替换为 DAG 的内存量 处理器(以 GB 为单位)。

  • DAG_PROCESSOR_STORAGE 替换为 DAG 处理器的磁盘空间量(以 GB 为单位)。

  • WEB_SERVER_CPU 替换为网络服务器的 CPU 数量(以 vCPU 为单位)。

  • WEB_SERVER_MEMORY 替换为 Web 服务器的内存量(以 GB 为单位)。

  • WEB_SERVER_STORAGE 替换为 Web 服务器的磁盘大小(以 GB 为单位)。

  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。

  • WORKER_MEMORY 替换为工作器的内存量(以 GB 为单位)。

  • WORKER_STORAGE 替换为工作器的磁盘大小(以 GB 为单位)。

  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。

  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

  • ENVIRONMENT_SIZE 替换为环境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

例如:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": 2.5,
        "memoryGb": 2.5,
        "storageGb": 2,
        "count": 1
      },
      "triggerer": {
        "cpu": 0.5,
        "memoryGb": 0.5,
        "count": 1
      },
      "dagProcessor": {
        "count": 1,
        "cpu": 0.5,
        "memoryGb": 2,
        "storageGb": 1
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL"
  }
}

Terraform

创建环境时,您可以通过以下参数控制环境的规模和性能参数。

  • config 块中:

    • environment_size 字段用于控制环境大小。
  • workloads_config 块中:

    • scheduler.cpu 字段用于指定 Airflow 调度器的 CPU 数量。
    • scheduler.memory_gb 字段用于指定 Airflow 调度器的内存量。
    • scheduler.storage_gb 字段用于指定调度器的磁盘空间。
    • scheduler.count 字段用于指定 环境
    • triggerer.cpu 字段指定 Airflow 的 CPU 数量 触发器。
    • triggerer.memory_gb 字段用于指定 Airflow 触发器的内存量。
    • triggerer.count 字段用于指定 环境

    • dag_processor.cpu 字段指定 DAG 的 CPU 数量 处理器。

    • dag_processor.memory_gb 字段指定 DAG 处理器

    • dag_processor.storage_gb 字段用于指定 DAG 处理器的磁盘空间。

    • dag_processor.count 字段用于指定 DAG 处理器的数量。

    • web_server.cpu 字段用于指定 Airflow Web 服务器的 CPU 数量。

    • web_server.memory_gb 字段用于指定 Airflow Web 服务器的内存量。

    • web_server.storage_gb 字段指定磁盘可用空间 适用于 Airflow Web 服务器。

    • worker.cpu 字段用于指定 Airflow 工作器的 CPU 数量。

    • worker.memory_gb 字段用于指定 Airflow 工作器的内存量。

    • worker.storage_gb 用于指定 Airflow 工作器的磁盘空间量。

    • worker.min_count 字段用于指定环境中的工作器数量下限。

    • worker.max_count 字段用于指定环境中的工作器数量上限。

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

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

    environment_size = "ENVIRONMENT_SIZE"

  }
}

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量(以 GB 为单位)。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小(以 GB 为单位)。
  • SCHEDULER_COUNT 替换为调度器的数量。
  • TRIGGERER_COUNT 替换为触发器数量。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。
  • TRIGGERER_MEMORY 替换为触发器的内存量(以 GB 为单位)。
  • WEB_SERVER_CPU 替换为网络服务器的 CPU 数量(以 vCPU 为单位)。
  • WEB_SERVER_MEMORY 替换为 Web 服务器的内存量(以 GB 为单位)。
  • WEB_SERVER_STORAGE 替换为 Web 服务器的磁盘大小(以 GB 为单位)。
  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。
  • WORKER_MEMORY 替换为工作器的内存量(以 GB 为单位)。
  • WORKER_STORAGE 替换为工作器的磁盘大小(以 GB 为单位)。
  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。
  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。
  • ENVIRONMENT_SIZE 替换为环境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

例如:

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

  config {

    workloads_config {

      scheduler {
        cpu = 2.5
        memory_gb = 2.5
        storage_gb = 2
        count = 1
      }
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
      web_server {
        cpu = 1
        memory_gb = 2.5
        storage_gb = 2
      }
      worker {
        cpu = 1
        memory_gb = 2
        storage_gb = 2
        min_count = 2
        max_count = 4
      }
    }

    environment_size = "ENVIRONMENT_SIZE_SMALL"

  }
}

第 4 步:(可选)为环境的数据库指定可用区

您可以为自己的环境指定首选 Cloud SQL 可用区。

控制台

创建环境页面中执行以下操作:

  1. 高级配置部分,展开 显示高级配置项。

  2. Airflow 数据库可用区列表中,选择首选 Cloud SQL 可用区。

gcloud

创建环境时,--cloud-sql-preferred-zone 参数会指定首选的 Cloud SQL 可用区。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --cloud-sql-preferred-zone SQL_ZONE

替换以下内容:

  • SQL_ZONE:首选 Cloud SQL 区域。此可用区必须位于 创建 Deployment

示例:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --cloud-sql-preferred-zone us-central1-a

API

创建环境时,请在 Environment > DatabaseConfig 资源中,指定首选 Cloud SQL 区域。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "databaseConfig": {
      "zone": "SQL_ZONE"
    }
  }
}

替换以下内容:

  • SQL_ZONE:首选 Cloud SQL 区域。此可用区必须位于 创建 Deployment

示例:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "databaseConfig": {
      "zone": "us-central1-a"
    }
  }
}

Terraform

创建环境时,database_config 中的 zone 字段 指定首选 Cloud SQL 可用区。

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

  config {
    database_config {
      zone = "SQL_ZONE"
    }
  }
}

替换以下内容:

  • SQL_ZONE:首选 Cloud SQL 区域。此可用区必须位于 创建 Deployment

第 5 步:(可选)配置环境的网络

您可以通过以下方式配置 Cloud Composer 3 网络:

控制台

  1. 确保已针对您要创建的环境类型配置网络。

  2. 网络配置部分中,展开显示网络配置项。

  3. 如果要将环境连接到 VPC 网络,请在 网络连接字段中,选择一个网络连接。您还可以创建新的网络连接。如需了解详情,请参阅将环境连接到 VPC 网络

  4. 如果您想创建专用 IP 环境,请在网络类型部分中,选择专用 IP 环境选项。

  5. 如果要添加网络标记,请参阅针对以下内容的添加网络标记: 。

gcloud

确保已针对您要创建的环境类型配置网络。

创建环境时,以下参数可控制网络参数。如果您省略参数,则系统会使用默认值。

  • --enable-private-environment 用于启用专用 IP 环境。

  • --network 用于指定您的 VPC 网络 ID。

  • --subnetwork 用于指定您的 VPC 子网 ID。

示例(专用 IP 环境) (通过已连接的 VPC 网络)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \

您需要将其中的:

  • NETWORK_ID 替换为您的 VPC 网络 ID。
  • SUBNETWORK_ID 替换为您的 VPC 子网 ID。

第 6 步:(可选)添加广告联盟代码

网络标记会应用于环境的集群中的所有节点虚拟机。标记用于标识网络防火墙的有效来源或目标。列表中的每个标记都必须符合 RFC 1035

例如,如果您打算使用防火墙规则限制专用 IP 环境的流量,则可能需要添加网络标记。

控制台

创建环境页面中执行以下操作:

  1. 找到网络配置部分。
  2. 网络标记字段中,输入您的环境的网络标记。

gcloud

创建环境时,以下参数可用于控制网络标记:

  • --tags 指定应用于所有节点虚拟机的网络标记的逗号分隔列表。
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --tags TAGS

您需要将其中的:

  • TAGS 替换为以英文逗号分隔的网络标记列表。

示例:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --tags group1,production

API

创建环境时,请在环境 > EnvironmentConfig 资源中为您的环境指定网络标记。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "tags": [
        "TAG"
      ]
    }
  }
}

您需要将其中的:

  • TAG 替换为网络标记。

示例:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "tags": [
        "group1",
        "production"
      ]
    }
  }
}

Terraform

创建环境时,以下字段可用于为环境定义网络标记:

  • node_config 块中的 tags 字段指定应用于所有节点虚拟机的网络标记的逗号分隔列表。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
    }
  }
}

您需要将其中的:

  • TAGS 替换为以英文逗号分隔的网络标记列表。

示例:

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

  config {
    node_config {
      tags = ["group1","production"]
    }
  }
}

第 7 步:(可选)配置网络服务器网络访问权限

Airflow 网络服务器访问参数不取决于您的环境类型。您可以改为单独配置网络服务器访问权限。例如,专用 IP 环境仍然可以通过互联网访问 Airflow 界面。

您无法使用专用 IP 地址配置允许的 IP 范围。

控制台

创建环境页面中执行以下操作:

  1. 网络配置部分中,展开显示网络配置项。

  2. 网络服务器网络访问权限控制部分:

    • 为了支持从所有 IP 地址访问 Airflow Web 服务器, 选择允许从所有 IP 地址访问

    • 如需只允许来自特定 IP 地址范围的访问,请选择仅允许来自特定 IP 地址的访问。在 IP 范围字段中,以 CIDR 表示法指定 IP 范围。在说明字段中,指定此范围的可选说明。如果您想指定多个范围,请点击添加 IP 范围

    • 如需禁止从所有 IP 地址访问,请选择仅允许从特定 IP 地址访问,然后点击空范围条目旁边的删除项

gcloud

创建环境时,以下参数可控制网络服务器访问权限级别:

  • --web-server-allow-all 提供从所有 IP 地址访问 Airflow 的权限。这是默认选项。

  • --web-server-allow-ip 仅允许来自特定来源 IP 地址范围的访问。如需指定多个 IP 范围,请多次使用此参数。

  • --web-server-deny-all 禁止从所有 IP 地址访问。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

替换:

  • WS_IP_RANGE 替换为可以访问 Airflow 界面的 IP 地址范围(采用 CIDR 表示法)。
  • WS_RANGE_DESCRIPTION 替换为 IP 地址范围的说明。

例如:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

创建环境时,在环境 > EnvironmentConfig 资源中,指定网络服务器访问参数。

  • 为了支持从所有 IP 地址访问 Airflow Web 服务器, 省略 webServerNetworkAccessControl

  • 如需只允许从特定 IP 地址范围访问,请在 allowedIpRanges 中指定一个或多个范围。

  • 如需禁止从所有 IP 地址访问,请添加 allowedIpRanges 列表并将其留空。请勿在其中指定 IP 范围。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

替换:

  • WS_IP_RANGE 替换为可以访问 Airflow 界面的 IP 地址范围(采用 CIDR 表示法)。
  • WS_RANGE_DESCRIPTION 替换为 IP 地址范围的说明。

例如:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

创建环境时,web_server_network_access_control 块中的 allowed_ip_range 块包含可以访问网络服务器的 IP 地址范围。

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

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

替换:

  • WS_IP_RANGE 替换为可以访问 Airflow 界面的 IP 地址范围(采用 CIDR 表示法)。
  • WS_RANGE_DESCRIPTION 替换为 IP 地址范围的说明。

示例:

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

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }

    }
}

第 8 步:(可选)指定 Airflow 配置替换和环境变量

您可以在创建环境时设置 Airflow 配置替换环境变量。或者,您可以在创建环境后执行此操作。

某些 Airflow 配置选项被屏蔽,您无法替换这些选项。

如需查看可用的 Airflow 配置选项列表,请参阅 Airflow 2 配置参考Airflow 1.10.*

如需指定 Airflow 配置替换和环境变量,请执行以下操作:

控制台

创建环境页面中执行以下操作:

  1. 环境变量部分中,点击添加环境变量

  2. 输入环境变量的名称

  3. Airflow 配置替换部分中,点击添加 Airflow 配置替换

  4. 输入配置选项替换值的部分

    例如:

    webserver dag_orientation TB

gcloud

创建环境时,以下参数可用于控制环境变量和 Airflow 配置替换:

  • --env-variables 用于指定环境变量的英文逗号分隔列表。

    变量名称可以包含大写和小写字母、数字和下划线,但不能以数字开头。

  • --airflow-configs 用于指定 Airflow 配置替换的键和值的逗号分隔列表。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

替换:

  • ENV_VARS 替换为环境变量以逗号分隔的 NAME=VALUE 对列表。
  • CONFIG_OVERRIDES 替换为配置替换以逗号分隔的 SECTION-KEY=VALUE 对列表。用 - 符号分隔配置部分的名称,后跟键名称。例如:core-dags_are_paused_at_creation

例如:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
    --airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB

API

创建环境时,请在环境 > EnvironmentConfig 资源中,指定环境变量和 Airflow 配置替换。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "SECTION-KEY": "OVERRIDE_VALUE"
      },
      "envVariables": {
        "VAR_NAME": "VAR_VALUE",
      }
    }
  }
}

替换:

  • SECTION 替换为 Airflow 配置选项所在配置文件中的部分。
  • KEY 替换为 Airflow 配置选项的名称。
  • OVERRIDE_VALUE 替换为 Airflow 配置选项的值。
  • VAR_NAME 替换为环境变量的名称。
  • VAR_VALUE 替换为环境变量的值。

例如:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "core-dags_are_paused_at_creation": "True",
        "webserver-dag_orientation": "TB"
      },
      "envVariables": {
        "SENDGRID_MAIL_FROM": "user@example.com",
        "SENDGRID_API_KEY": "example-key"
      }
    }
  }
}

Terraform

创建环境时,以下块可用于控制环境变量和 Airflow 配置替换:

  • software_config 块中的 env_variables 块可用于指定环境变量。

    变量名称可以包含大写和小写字母、数字和下划线,但不能以数字开头。

  • software_config 块中的 airflow_config_overrides 块指定 Airflow 配置替换。

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

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }
  }
}

替换:

  • SECTION 替换为 Airflow 配置选项所在配置文件中的部分。
  • KEY 替换为 Airflow 配置选项的名称。
  • OVERRIDE_VALUE 替换为 Airflow 配置选项的值。
  • VAR_NAME 替换为环境变量的名称。
  • VAR_VALUE 替换为环境变量的值。

示例:

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

  config {

    software_config {

      airflow_config_overrides = {
        core-dags_are_paused_at_creation = "True"
        webserver-dag_orientation = "TB"
      }

      env_variables = {
        SENDGRID_MAIL_FROM = "user@example.com"
        SENDGRID_API_KEY = "example-key"
      }
    }
  }
}

第 9 步:(可选)指定维护窗口

Cloud Composer 3 中的默认维护窗口 定义如下:

  • 所有时间均采用您的环境所在区域的本地时区 并忽略夏令时。
  • 周二、周三、周四和周五维护窗口从 00:00:00 至 02:00:00。
  • 周六、周日和周一的维护时间均为 00:00:00 到 04:00:00。

如需为您的环境指定自定义维护窗口,请执行以下操作:

控制台

创建环境页面上

  1. 找到维护期部分。

  2. 时区下拉列表中,选择维护窗口的时区。

  3. 设置开始时间天数长度,以便指定 7 天的滚动期内,时间表的总时间至少 12 小时。例如,每个星期一、星期三和星期五的 4 小时提供了所需的时间。

gcloud

以下参数定义了维护窗口参数:

  • --maintenance-window-start 设置自定义维护窗口的开始时间。
  • --maintenance-window-end 设置维护窗口的结束时间。
  • --maintenance-window-recurrence 设置维护窗口重复
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • DATETIME_START 替换为采用日期/时间输入格式的开始日期和时间。只有一天中所指定的时间,指定的日期会被忽略。
  • DATETIME_END 替换为采用日期/时间输入格式的结束日期和时间。只有一天中所指定的时间,指定的日期会被忽略。指定的日期和时间必须晚于开始日期。
  • MAINTENANCE_RECURRENCE 替换为用于恢复维护窗口的 RFC 5545 RRULE。Cloud Composer 支持两种格式:

  • FREQ=DAILY 格式指定每日重复。

  • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 格式指定在一周中的选定几天重复。

以下示例将维护窗口指定为 01:00 到 6000 之间,时间为 6 小时 每周三、周六和周日 07:00(世界协调时间 [UTC])。忽略 2023 年 1 月 1 日的日期。

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2.9.3-build.3 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

创建环境后,在 环境 > EnvironmentConfig 资源,请指定 维护窗口参数:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

替换:

  • DATETIME_START 替换为采用日期/时间输入格式的开始日期和时间。只有一天中所指定的时间,指定的日期会被忽略。
  • DATETIME_END 替换为采用日期/时间输入格式的结束日期和时间。只有一天中所指定的时间,指定的日期会被忽略。指定的日期和时间必须晚于开始日期。
  • MAINTENANCE_RECURRENCE 替换为用于恢复维护窗口的 RFC 5545 RRULE。Cloud Composer 支持两种格式:

  • FREQ=DAILY 格式指定每日重复。

  • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 格式指定在一周中的选定几天重复。

以下示例将维护窗口指定为 01:00 到 6000 之间,时间为 6 小时 每周三、周六和周日 07:00(世界协调时间 [UTC])。忽略 2023 年 1 月 1 日的日期。

示例:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Terraform

maintenance_window 块为您的环境指定维护窗口:

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

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

替换:

  • DATETIME_START 替换为采用日期/时间输入格式的开始日期和时间。只有一天中所指定的时间,指定的日期会被忽略。
  • DATETIME_END 替换为采用日期/时间输入格式的结束日期和时间。只有一天中所指定的时间,指定的日期会被忽略。指定的日期和时间必须晚于开始日期。
  • MAINTENANCE_RECURRENCE 替换为用于恢复维护窗口的 RFC 5545 RRULE。Cloud Composer 支持两种格式:

    • FREQ=DAILY 格式指定每日重复。
    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA 格式指定在一周中的选定几天重复。

以下示例指定星期三、星期六和星期日世界协调时间 (UTC) 01:00 到 07:00 之间的 6 小时维护窗口。2023 年 1 月 1 日 日期。

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

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

第 10 步:(可选)数据沿袭集成

数据沿袭是 Dataplex 的一项功能,可让您跟踪数据移动。

所有版本的 Cloud Composer 3 都支持数据沿袭集成

如果满足以下条件,系统会在新的 Cloud Composer 环境中自动启用数据沿袭集成:

  • 您的项目已启用 Data Lineage API。如需了解详情,请参阅 Dataplex 文档中的启用 Data Lineage API

  • 自定义 沿袭后端 未在 Airflow 中配置。

您可以在创建环境时停用数据源流水线集成。对于 例如,如果您要覆盖自动行为或选择 稍后启用数据沿袭,在环境完成运行后 创建。

控制台

如需停用数据沿袭集成,请在创建环境页面上执行以下操作:

  1. 高级配置部分,展开 显示高级配置项。

  2. Dataplex 数据沿袭集成部分中,选择 停用与 Dataplex 数据沿袭的集成

gcloud

创建环境后,--disable-cloud-data-lineage-integration 参数可停用数据沿袭集成。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --disable-cloud-data-lineage-integration

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

示例:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --disable-cloud-data-lineage-integration

步骤 11.(可选)配置数据加密 (CMEK)

默认情况下,环境中的数据使用 Google 提供的密钥进行加密。

如需使用客户管理的加密密钥 (CMEK) 来加密您环境中的数据,请按照使用客户管理的加密密钥中的说明操作。

步骤 12.(可选)使用自定义环境的存储桶

当您创建环境时,Cloud Composer 会创建一个 自动配置您的环境

作为替代方案,您可以从 项目。您的环境使用此存储桶的方式与自动创建的存储桶相同。

如需使用自定义环境存储桶,请按照使用自定义环境的存储桶中所述的说明操作。

第 13 步:(可选)指定环境标签

您可以为环境分配标签,以根据标签细分结算费用

控制台

创建环境页面的标签部分中,执行以下操作:

  1. 点击添加标签

  2. 字段中,指定环境标签的键值对。

gcloud

当您创建环境时,--labels 参数会指定键和值的逗号分隔列表以及环境标签。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --labels LABELS

替换:

  • LABELS 替换为环境标签的 KEY=VALUE 对列表。

例如:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.9.3-build.3 \
    --labels owner=engineering-team,env=production

API

创建环境时,在环境资源中指定环境的标签。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

替换:

  • LABEL_KEY 替换为环境标签的键。
  • LABEL_VALUE 替换为环境标签的值。

例如:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

创建环境时,请在 labels 块(在 config 块外部)中指定标签。

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

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

替换:

  • LABEL_KEY 替换为环境标签的键。
  • LABEL_VALUE 替换为环境标签的值。

例如:

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

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

后续步骤