Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
本页面介绍了如何创建 Cloud Composer 环境。
- 如需详细了解环境,请参阅环境架构。
- 如需详细了解如何使用 Terraform 创建环境,请参阅创建环境 (Terraform)。
准备工作
启用 Cloud Composer API。如需查看完整列表 请参阅 Cloud Composer 所需的服务。
创建环境所需的大致时间为 25 分钟。
在创建环境期间,您需要指定一个服务账号。您的环境集群中的节点将作为此账号运行。
默认情况下,Cloud Composer 环境使用 Google 管理的默认 Compute Engine 服务账号。我们建议您创建一项用户管理的服务 账号 拥有专门针对 Cloud Composer 的角色
如果您使用 Terraform 创建环境,则 Terraform 使用的服务账号必须具有启用了
composer.environments.create
权限的角色。如需详细了解 Terraform 的服务账号,请参阅 Google 提供方配置参考文档。
如需详细了解如何使用 Terraform 创建 Cloud Composer 环境,请参阅 Terraform 文档。
如需详细了解其他参数,请参阅 Terraform 参数参考。
专用 IP:如需创建专用 IP 环境,您需要遵循特定的网络和对等互连要求。如需了解详情,请参阅配置专用 IP 地址。
共享 VPC:如需在 Cloud Composer 中使用共享 VPC,您需要遵循特定的网络要求。 如需了解相关信息,请参阅配置共享 VPC。
VPC SC:如需在安全边界内部署 Cloud Composer 环境,请参阅配置 VPC SC。与 Cloud Composer 搭配使用时,VPC Service Controls 有多项已知限制。
第 1 步:基本设置
此步骤将创建一个 Cloud Composer 环境 参数。
控制台
在 Google Cloud 控制台中,前往创建环境页面。
在名称字段中,为环境输入名称。
该名称必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。该环境名称用于创建环境的子组件,因此您必须提供一个有效的 Cloud Storage 存储桶名称。如需查看限制列表,请参阅存储桶命名准则。
在位置下拉列表中,为您的环境选择一个位置。
位置是环境所在的区域。
在映像版本下拉列表中,选择所需 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-1.20.12-airflow-1.10.15
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-1.20.12-airflow-1.10.15"
}
}
}
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-1.20.12-airflow-1.10.15"
}
}
}
第 2 步:(可选)为您的环境选择服务账号
环境集群中的节点以此服务账号身份运行。
默认情况下,Cloud Composer 环境使用默认的 Compute Engine 服务账号。我们建议您为 Cloud Composer 环境设置用户管理的服务账号。
您以后无法更改环境的服务账号。
控制台
在创建环境页面的节点配置部分的服务账号下拉列表中,为您的环境选择服务账号。
gcloud
创建环境时,--service-account
会为您的环境指定服务账号。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT"
替换:
- 将
SERVICE_ACCOUNT
替换为您的环境的服务账号。
例如:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--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 步:(可选)配置环境规模和性能参数
如需为您的环境指定规模和性能配置,请提供环境的 GKE 集群中的节点数量,并为环境组件选择机器类型。
控制台
在创建环境页面中执行以下操作:
在节点配置部分中:
输入节点数。
节点数是环境集群中的 Google Kubernetes Engine 节点数量。 默认情况下,环境具有 3 个节点。
您可以在创建环境后更改此值。
为节点选择机器类型。
节点的机器类型是集群实例使用的 Compute Engine 机器类型。此参数确定您的环境的 CPU 数和内存量。默认机器类型为
n1-standard-1
。如需在创建环境后更改此值,您必须手动重新配置环境集群。
输入磁盘大小。
环境节点的磁盘大小(以 GB 为单位)。您环境中的每个节点都具有此数量的磁盘空间。如果您希望将大量数据存储在与环境虚拟机同步的文件夹中,请选择较大的磁盘大小。例如,在环境存储桶的
/data
文件夹中。最小为 30 GB。默认大小为 100 GB。创建环境后,您无法更改此参数。
选择调度器数量。
您的环境可以同时运行多个 Airflow 调度器。使用多个调度器将负载分散到多个 调度程序实例,以提高性能和可靠性。
增加调度器的数量并不总是可以提高 Airflow 性能。例如,仅使用一个调度器的性能可能优于使用两个调度器。如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。
我们建议您先使用两个调度器,然后再监控环境的性能。如果您更改调度器的数量,则可以随时将环境扩缩回原始调度器的数量。
如需详细了解如何配置多个调度器,请参阅 Airflow 文档。
展开网络、Airflow 配置替换及其他功能项。
在 Cloud SQL 配置部分中,选择 Cloud SQL 机器类型。
此参数确定运行 Airflow 数据库的 Cloud SQL 实例的机器类型。默认 Cloud SQL 机器类型为
db-n1-standard-2
。在网络服务器配置部分中,选择网络服务器机器类型。
此参数确定运行 Airflow 网络服务器的 Compute Engine 实例的机器类型。
默认网络服务器机器类型为
composer-n1-webserver-2
。
gcloud
创建环境时,以下参数可用于控制环境规模和性能参数:
--node-count
可用于指定环境中的节点数量。节点数是环境集群中的 Google Kubernetes Engine 节点数量。 默认情况下,环境具有 3 个节点。
您可以在创建环境后更改此值。
--scheduler-count
指定您环境中的调度器数量。您的环境可以同时运行多个 Airflow 调度器。使用多个调度器将负载分散到多个 调度程序实例,以提高性能和可靠性。
增加调度器的数量并不总是可以提高 Airflow 性能。例如,仅使用一个调度器的性能可能优于使用两个调度器。如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。
我们建议您先使用两个调度器,然后再监控环境的性能。如果您更改调度器的数量,则可以随时将环境扩缩回原始调度器的数量。
如需详细了解如何配置多个调度器,请参阅 Airflow 文档。
--disk-size
用于指定环境虚拟机的磁盘大小。环境节点的磁盘大小(以 GB 为单位)。您环境中的每个节点都具有此数量的磁盘空间。如果您希望将大量数据存储在与环境虚拟机同步的文件夹中,请选择较大的磁盘大小。例如,在环境存储桶的
/data
文件夹中。最小为 30 GB。默认大小为 100 GB。创建环境后,您无法更改此参数。
--machine-type
指定节点虚拟机的机器类型。节点的机器类型为 Compute Engine 机器类型 集群实例此参数确定您的环境的 CPU 数和内存量。默认机器类型为
n1-standard-1
。如需在创建环境后更改此值,您必须手动重新配置环境集群。
--cloud-sql-machine-type
指定 Cloud SQL 实例的机器类型。此参数确定运行 Airflow 数据库的 Cloud SQL 实例的机器类型。默认 Cloud SQL 机器类型为
db-n1-standard-2
。--web-server-machine-type
指定 Airflow 网络服务器实例的机器类型。此参数确定运行 Airflow 网络服务器的 Compute Engine 实例的机器类型。
默认网络服务器机器类型为
composer-n1-webserver-2
。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone NODE_ZONE \
--node-count NODE_COUNT \
--scheduler-count SCHEDULER_COUNT \
--disk-size DISK_SIZE \
--machine-type NODE_MACHINE_TYPE \
--cloud-sql-machine-type SQL_MACHINE_TYPE \
--web-server-machine-type WS_MACHINE_TYPE
替换:
- 将
NODE_COUNT
替换为节点数。 - 将
NODE_ZONE
替换为您的环境虚拟机的 Compute Engine 可用区。 SCHEDULER_COUNT
替换为调度器的数量。- 将
DISK_SIZE
替换为环境虚拟机的磁盘大小(以 GB 为单位)。 - 将
NODE_MACHINE_TYPE
替换为节点虚拟机的机器类型。 - 将
SQL_MACHINE_TYPE
替换为 Cloud SQL 实例的机器类型。 - 将
WS_MACHINE_TYPE
替换为 Airflow 网络服务器实例的机器类型。
例如:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone us-central1-a \
--node-count 6 \
--scheduler-count 1 \
--disk-size 50 \
--machine-type n1-standard-2 \
--cloud-sql-machine-type db-n1-standard-2 \
--web-server-machine-type composer-n1-webserver-2
API
创建环境时,请在环境 > EnvironmentConfig 资源中指定环境规模和性能参数。
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeCount": NODE_COUNT,
"nodeConfig": {
"machineType": "NODE_MACHINE_TYPE",
"diskSizeGb": DISK_SIZE
},
"softwareConfig": {
"schedulerCount": SCHEDULER_COUNT
},
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
},
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
替换:
- 将
NODE_COUNT
替换为节点数。 - 将
DISK_SIZE
替换为环境虚拟机的磁盘大小(以 GB 为单位)。 - 将
NODE_MACHINE_TYPE
替换为节点虚拟机的机器类型。该值必须包含一个 为环境虚拟机配置可用区 SCHEDULER_COUNT
替换为调度器的数量。- 将
SQL_MACHINE_TYPE
替换为 Cloud SQL 实例的机器类型。 - 将
WS_MACHINE_TYPE
替换为 Airflow 网络服务器实例的机器类型。
例如:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeCount": 6,
"nodeConfig": {
"machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
"diskSizeGb": 50
},
"softwareConfig": {
"schedulerCount": 1
},
"databaseConfig": {
"machineType": "db-n1-standard-2"
},
"webServerConfig": {
"machineType": "composer-n1-webserver-2"
}
}
}
Terraform
创建环境时,以下字段可用于控制环境规模和性能参数:
node_config
块中的node_count
指定您的环境中的节点数。节点计数是环境集群中的 Google Kubernetes Engine 节点数量。默认情况下,环境具有 3 个节点。
您可以在创建环境后更改此值。
node_config
块中的disk_size_gb
指定环境虚拟机的磁盘大小。环境节点的磁盘大小(以 GB 为单位)。您环境中的每个节点都具有此数量的磁盘空间。如果您希望将大量数据存储在与环境虚拟机同步的文件夹中,请选择较大的磁盘大小。例如,在环境存储桶的
/data
文件夹中。最小为 30 GB。默认大小为 100 GB。创建环境后,您无法更改此参数。
node_config
块中的machine_type
指定节点虚拟机的机器类型。指定此字段时,还应在zone
字段中为您的环境虚拟机提供一个 Compute Engine 可用区。节点的机器类型是集群实例使用的 Compute Engine 机器类型。此参数确定您的环境的 CPU 数和内存量。默认机器类型为
n1-standard-1
。如需在创建环境后更改此值,您必须手动重新配置环境集群。
database_config
块中的machine_type
指定 Cloud SQL 实例的机器类型。此参数确定运行 Airflow 数据库的 Cloud SQL 实例的机器类型。默认 Cloud SQL 机器类型为
db-n1-standard-2
。web_server_config
块中的machine_type
指定 Airflow 网络服务器实例的机器类型。此参数确定运行 Airflow 网络服务器的 Compute Engine 实例的机器类型。
默认网络服务器机器类型为
composer-n1-webserver-2
。software_config
块中的scheduler_count
字段指定了环境中的调度器的数量。您的环境必须使用 Airflow 2。
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
node_count = NODE_COUNT
disk_size_gb = DISK_SIZE
machine_type = "NODE_MACHINE_TYPE"
zone = "NODE_ZONE"
}
software_config {
scheduler_count = SCHEDULER_COUNT
}
database_config {
machine_type = "SQL_MACHINE_TYPE"
}
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
替换:
- 将
NODE_COUNT
替换为节点数。 - 将
DISK_SIZE
替换为环境虚拟机的磁盘大小(以 GB 为单位)。 - 将
NODE_MACHINE_TYPE
替换为节点虚拟机的机器类型。 - 将
NODE_ZONE
替换为您的环境虚拟机的 Compute Engine 可用区。 SCHEDULER_COUNT
替换为调度器的数量。- 将
SQL_MACHINE_TYPE
替换为 Cloud SQL 实例的机器类型。 - 将
WS_MACHINE_TYPE
替换为 Airflow 网络服务器实例的机器类型。
例如:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
node_count = 4
disk_size_gb = 100
zone = "us-central1-a"
machine_type = "n1-standard-2"
}
software_config {
scheduler_count = 2
}
database_config {
machine_type = "db-n1-standard-2"
}
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}
}
第 4 步:(可选)配置环境的网络
网络参数取决于您要创建的环境类型:
公共 IP 环境。使用默认的网络参数。
专用 IP 环境(VPC 对等互连)。在此配置中,您的环境使用 VPC 对等互连进行连接。
配置专用 IP 环境:
- 为专用 IP 环境配置项目网络。
- 按照说明为您的专用 IP 环境指定其他参数 详细介绍。
对于使用 VPC 对等互连的专用 IP 环境,您需要了解以下内容:
- 您的 VPC 网络 ID
- 您的 VPC 子网 ID
VPC 子网中的两个次要 IP 范围:
- pod 的次要 IP 范围
- Service 的次要 IP 范围
环境组成部分的 IP 地址范围:
- GKE 控制平面的 IP 范围。
- Web 服务器 IP 地址范围。
- Cloud SQL 实例的 IP 范围。
对于共享 VPC 环境,您必须为宿主项目进行额外的网络设置,然后在服务项目中创建公共或专用 IP 环境。请按照 配置共享 VPC 页面。
对于共享 VPC 环境,您需要了解以下内容:
- 您的宿主项目 VPC 网络 ID
您的宿主项目 VPC 子网 ID
宿主项目 VPC 子网中的两个次要 IP 范围:
- pod 的次要 IP 范围
- Service 的次要 IP 范围
创建公共 IP 共享 VPC 环境时,您仍然需要为 pod 和服务指定宿主项目 VPC 网络、子网和次要 IP 地址范围。
如需创建 VPC SC 环境,您必须创建服务边界,然后在此边界内创建专用 IP 环境。按照配置 VPC Service Controls 中的说明操作。
环境的其他网络选项包括:
- 以不公开方式使用的公共 IP 地址。如果要使用更多 IP 地址,您的环境可以将某些公共 IP 地址范围用作 pod 和服务专用的内部子网 IP 地址范围。
- 已获授权的网络。如果您想使用 HTTPS 访问专用 IP 环境的控制平面,可以使用已授权网络指定可以执行此操作的 CIDR 范围。
- IP 伪装代理。通过使用具有 IP 伪装的环境 可以使用多对一 IP 地址转换 环境的网络配置。如需详细了解 如何使用 IP 伪装代理创建环境,请参阅 启用 IP 伪装代理。
控制台
要创建专用 IP 环境,请执行以下操作:
确保已针对您要创建的环境类型配置网络。
展开网络、Airflow 配置替换及其他功能项。
在网络配置部分中,选中启用 VPC 原生(使用别名 IP)复选框。
在网络下拉列表中,选择您的 VPC 网络 ID。
在子网下拉列表中,选择您的 VPC 子网 ID。
在 Pod IP 地址分配部分中,指定 Pod 的次要 IP 范围。您可以在 VPC 网络中使用现有的次要范围,也可以采用 CIDR 表示法指定新的次要范围。
在服务 IP 地址分配部分中,指定服务的次要 IP 范围。您可以在 VPC 网络中使用现有的次要范围,也可以采用 CIDR 表示法指定新的次要范围。
在专用 IP 部分中,选中启用专用 IP 复选框。
在 GKE 集群主服务器专用 IP 部分中,为 GKE 控制平面指定 IP 范围:
如需对环境所在的区域使用默认 IP 范围,请选择默认 IP 范围。
如需指定自定义 IP 范围,请选择自定义 IP 范围,并在 GKE 集群主服务器专用 IP 字段中输入采用 CIDR 表示法的范围。
选择 GKE 控制平面的访问权限级别。控制平面有两个端点。一个端点是专用的,供集群节点和虚拟机使用。另一个端点是公共端点。您可以为公共端点指定访问权限级别:
如需允许从已获授权的网络访问公共端点,请选中使用外部 IP 地址访问主节点端点复选框。
使用此选项将控制平面的访问权限级别设置为“启用公共端点访问权限并启用已获授权的网络”。这提供了从已获授权的网络对控制平面的受限访问。默认情况下,未指定来源 IP 地址。您可以向集群添加授权网络。
如需禁止从已获授权的网络访问公共端点,请清除使用外部 IP 地址访问主节点端点复选框。
使用此选项将控制平面的访问权限级别设置为“公共端点访问权限已停用”。这样可以阻止对控制平面的所有互联网访问。
在网络服务器专用 IP 部分中,指定 Airflow 网络服务器实例的 IP 范围。
在 Cloud SQL 专用 IP 部分,为 Cloud SQL 实例。
gcloud
确保已针对您要创建的环境类型配置网络。
创建环境时,以下参数可控制网络参数。如果您省略参数,则系统会使用默认值。
--enable-private-environment
用于启用专用 IP 环境。--enable-ip-alias
会启用使用别名 IP 地址的 VPC 原生功能。使用
--enable-private-environment
时或为 pod 和服务配置次要范围时,必须填写此参数。--network
用于指定您的 VPC 网络 ID。--subnetwork
用于指定您的 VPC 子网 ID。--cluster-secondary-range-name
或--cluster-ipv4-cidr
用于配置 pod 的次要范围。--services-secondary-range-name
或--services-ipv4-cidr
用于配置服务的次要范围。--master-ipv4-cidr
用于指定 GKE 控制平面的范围。
--web-server-ipv4-cidr
用于指定 Airflow 网络服务器实例的范围。--cloud-sql-ipv4-cidr
用于指定 Cloud SQL 实例的范围。
--enable-private-endpoint
用于控制 GKE 控制平面的访问权限级别。控制平面有两个端点。一个端点是专用的,供集群节点和虚拟机使用。 另一个端点是公共端点。您可以为公共端点指定访问权限级别:如需启用已获授权的网络对公共端点的访问权限,请省略
--enable-private-endpoint
参数。使用此选项将控制平面的访问权限级别设置为“启用公共端点访问权限并启用已获授权的网络”。这提供了从已获授权的网络对控制平面的受限访问。默认情况下,未指定来源 IP 地址。您可以向集群添加授权网络。
如需停用已获授权的网络对公共端点的访问权限,请指定
--enable-private-endpoint
参数。使用此选项将控制平面的访问权限级别设置为“公共端点访问权限已停用”。这样可以阻止对控制平面的所有互联网访问。
--enable-master-authorized-networks
和--master-authorized-networks
参数用于为您的环境配置授权网络。--enable-privately-used-public-ips
进行配置 您的环境的非公开使用的公共 IP 地址。--enable-ip-masq-agent
启用 IP 伪装代理。
示例(专用 IP 环境)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-private-environment \
--enable-ip-alias \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
--cluster-ipv4-cidr PODS_RANGE \
--services-ipv4-cidr SERVICES_RANGE \
--master-ipv4-cidr CONTROL_PLANE_RANGE \
--web-server-ipv4-cidr WEB_SERVER_RANGE \
--cloud-sql-ipv4-cidr SQL_RANGE
您需要将其中的:
- 将
NETWORK_ID
替换为您的 VPC 网络 ID。 将
SUBNETWORK_ID
替换为您的 VPC 子网 ID。将
PODS_RANGE
替换为 pod 的次要范围。将
SERVICES_RANGE
替换为服务的次要范围。将
CONTROL_PLANE_RANGE
替换为 GKE 控制平面的次要范围。将
WEB_SERVER_RANGE
替换为 Airflow 网络服务器实例的次要范围。将
SQL_RANGE
替换为 Cloud SQL 实例的范围。
第 5 步:(可选)添加广告联盟代码
网络标记会应用于环境的集群中的所有节点虚拟机。标记用于标识网络的有效来源或目标 防火墙。此列表中的每个标记都必须符合 RFC 1035 格式。
例如,如果您打算使用防火墙规则限制专用 IP 环境的流量,则可能需要添加网络标记。
控制台
在创建环境页面中执行以下操作:
- 找到节点配置部分。
- 在标记字段中,为节点虚拟机指定实例标记。
gcloud
创建环境时,以下参数用于控制网络标记:
--tags
指定应用于所有节点虚拟机的网络标记的逗号分隔列表。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--tags TAGS
您需要将其中的:
- 将
TAGS
替换为以逗号分隔的网络标记列表。
示例:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--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"]
}
}
}
第 6 步:(可选)配置网络服务器网络访问权限
Airflow 网络服务器访问参数不取决于您的环境类型。您可以改为单独配置网络服务器访问权限。例如,专用 IP 环境仍然可以通过互联网访问 Airflow 界面。
您无法使用专用 IP 地址配置允许的 IP 范围。
控制台
在创建环境页面的网络服务器配置部分中,执行以下操作:
为了支持从所有 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-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--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"
}
}
}
第 7 步:(可选)指定 Airflow 配置替换和环境变量
您可以在创建环境时设置 Airflow 配置替换和环境变量。或者,您可以在创建环境后执行此操作。
某些 Airflow 配置选项被屏蔽,您无法替换这些选项。
如需查看可用的 Airflow 配置选项列表,请参阅 Airflow 2 配置参考 和 Airflow 1.10.*
如需指定 Airflow 配置替换和环境变量,请执行以下操作:
控制台
在创建环境页面中执行以下操作:
展开网络、Airflow 配置替换及其他功能项。
在环境变量部分中,点击添加环境变量。
输入环境变量的名称和值。
在 Airflow 配置替换部分中,点击添加 Airflow 配置替换。
输入配置选项替换值的部分、键和值。
例如:
节 键 值 webserver
dag_orientation
TB
gcloud
创建环境时,以下参数可用于控制环境变量和 Airflow 配置替换:
--env-variables
用于指定环境变量的英文逗号分隔列表。变量名称可以包含大写和小写字母、数字和下划线,但不能以数字开头。
--airflow-configs
用于指定 Airflow 配置替换的键和值的逗号分隔列表。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--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"
}
}
}
}
第 8 步:(可选)指定维护窗口
默认情况下,如果您使用 Google Cloud 控制台、API 或 Terraform 创建 Cloud Composer 1 环境,则这些环境不会定义维护窗口。我们建议您为新环境和现有环境指定维护窗口。
如果您使用 gcloud CLI 创建环境,则您的环境 默认维护窗口为周五 00:00:00 至 04:00:00(格林尼治标准时间), 每周六和周日
如需为您的环境指定自定义维护窗口,请执行以下操作:
控制台
在创建环境页面中执行以下操作:
展开网络、Airflow 配置替换及其他功能项。
在维护窗口部分中,选中设置维护窗口的自定义时间复选框。
在时区下拉列表中,选择维护窗口的时区。
设置开始时间、天数和长度,以便指定 7 天的滚动期内,时间表的总时间至少 12 小时。例如,每个星期一、星期三和星期五的 4 小时提供了所需的时间。
gcloud
以下参数定义了维护窗口参数:
--maintenance-window-start
设置自定义维护窗口的开始时间。--maintenance-window-end
设置维护窗口的结束时间。--maintenance-window-recurrence
设置维护窗口重复。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--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
格式指定在一周中的选定几天重复。
以下示例指定星期三、星期六和星期日世界协调时间 (UTC) 01:00 到 07:00 之间的 6 小时维护窗口。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
格式指定在一周中的选定几天重复。
以下示例将维护窗口指定为 01:00 到 6000 之间,时间为 6 小时 每周三、周六和周日 07:00(世界协调时间 [UTC])。忽略 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"
}
}
}
第 9 步:(可选)配置数据加密 (CMEK)
默认情况下,环境中的数据使用 Google 提供的密钥进行加密。
如需使用客户管理的加密密钥 (CMEK) 来加密您环境中的数据,请按照使用客户管理的加密密钥中的说明操作。
第 10 步:(可选)指定环境标签
您可以为自己的环境分配标签 根据这些标签细分结算费用。
控制台
在创建环境页面中执行以下操作:
展开网络、Airflow 配置替换及其他功能项。
在标签部分中,点击添加标签。
在键和值字段中,指定环境标签的键值对。
gcloud
当您创建环境时,--labels
参数会指定键和值的逗号分隔列表以及环境标签。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--labels LABELS
替换:
- 将
LABELS
替换为环境标签的KEY=VALUE
对列表。
例如:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--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"
}
}
步骤 11.(可选)配置其他参数
其他参数包括:
您的环境节点所在的可用区
要在其中部署集群节点的 Compute Engine 可用区。在此参数中,您可以选择环境位置中的特定可用区。
默认情况下,系统会自动选择随机可用区。
OAuth 范围
OAuth 范围是一组可用于所有节点虚拟机的 Google API 范围。如果为空,则默认为
https://www.googleapis.com/auth/cloud-platform
。如果您指定了自定义 OAuth 范围,请在指定范围列表中添加
https://www.googleapis.com/auth/cloud-platform
。Python 版本
如果您的环境使用 Airflow 1.10.* 及更低版本的 Airflow,您可以将环境设置为使用 Python 2。默认的 Python 版本是 Python 3。如需详细了解 Cloud Composer 中的 Python 2 支持,请参阅支持的 Python 版本。
控制台
在创建环境页面中执行以下操作:
在节点配置部分中:
在可用区下拉列表中,为您的环境节点选择一个可用区。
您之后将无法更改可用区。
在 OAuth 范围字段中,指定节点虚拟机的 OAuth 范围。
您以后无法更改 OAuth 范围。
如需指定多个 OAuth 范围,请提供以英文逗号分隔的值列表。将
https://www.googleapis.com/auth/cloud-platform
包含在指定范围列表中。在 Python 版本字段中,选择 Python 的版本。
您之后无法更改 Python 版本。
gcloud
创建环境时,以下参数可用于控制环境的其他参数:
--zone
为您的环境虚拟机指定 Compute Engine 可用区。--oauth-scopes
指定以逗号分隔的 OAuth 范围列表。 将https://www.googleapis.com/auth/cloud-platform
包含在指定范围列表中。--python-version
可用于指定 Python 的版本。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone ZONE \
--oauth-scopes OAUTH_SCOPES \
--python-version PYTHON_VERSION
替换:
- 将
ZONE
替换为 Compute Engine 可用区的名称。 - 将
OAUTH_SCOPES
替换为 OAuth 范围的逗号分隔列表。 - 将
PYTHON_VERSION
替换为 Python 版本(3
或2
)。
例如:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone us-central1-a \
--oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery \
--python-version 3
API
创建环境时,请在环境 > EnvironmentConfig 资源中指定环境的其他参数。
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"location": "projects/PROJECT_ID/zones/ZONE",
"oauthScopes": [
"OAUTH_SCOPE"
]
},
"softwareConfig": {
"pythonVersion": "PYTHON_VERSION"
}
}
}
替换:
- 将
ZONE
替换为 Compute Engine 可用区的名称。 - 将
OAUTH_SCOPE
替换为 OAuth 范围。如需指定其他范围,请添加https://www.googleapis.com/auth/cloud-platform
范围,后跟其他范围项。 - 将
PYTHON_VERSION
替换为 Python 版本(3
或2
)。
例如:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"location": "projects/example-project/zones/us-central1-a",
"oauthScopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/bigquery"
]
},
"softwareConfig": {
"pythonVersion": "3"
}
}
}
Terraform
创建环境时,以下字段可用于控制环境的其他参数:
node_config
块中的zone
字段指定环境虚拟机的 Compute Engine 可用区。node_config
块中的oauth_scopes
字段指定 OAuth 范围的逗号分隔列表。software_config
块中的python_version
字段可用于指定 Python 的版本。
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
zone = "ZONE"
oauth_scopes = "[OAUTH_SCOPES]"
}
software_config {
python_version = "PYTHON_VERSION"
}
}
}
替换:
- 将
ZONE
替换为 Compute Engine 可用区的名称。 - 将
OAUTH_SCOPES
替换为 OAuth 范围的逗号分隔列表。 - 将
PYTHON_VERSION
替换为 Python 版本(3
或2
)。
例如:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
zone = "us-central1-a"
oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
}
software_config {
python_version = "3"
}
}
}
步骤 12.(可选)强制使用 Beta 版 API
即使您的环境没有任何预览功能,您也可以明确让您的环境使用 Beta 版 Cloud Composer API。如果您这样做,则系统将使用 v1beta1
服务端点创建环境。
控制台
在创建环境页面中执行以下操作:
展开网络、Airflow 配置替换及其他功能项。
在 Beta API 部分中,选中强制使用 Beta 版 API 复选框。
gcloud
使用 gcloud beta composer
命令创建环境。
API
使用 v1beta1
服务端点创建环境。
Terraform
默认情况下,Cloud Composer 的 Terraform 提供商使用 Beta 版 API。