Cloud Composer 1 | Cloud Composer 2
Apache Airflow 具有命令行界面 (CLI),可用于执行任务,例如触发和管理 DAG、获取有关 DAG 运行和任务的信息、添加和删除连接和用户。
CLI 语法版本简介
Cloud Composer 1 中的 Airflow 为 CLI 命令提供两种不同的语法:
Airflow 1.10 CLI 语法,适用于采用 Airflow 1.10 的 Cloud Composer 环境。
Airflow 2 CLI 语法,适用于采用 Airflow 2 的 Cloud Composer 环境。
准备工作
您必须拥有将 gcloud
命令行工具与 Cloud Composer 搭配使用的足够权限。如需了解详情,请参阅访问权限控制。
运行 Airflow CLI 命令
要在您的环境中运行 Airflow CLI 命令,请使用 gcloud
:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
SUBCOMMAND
替换为受支持的 Airflow CLI 命令之一。 - 将
SUBCOMMAND_ARGUMENTS
替换为 Airflow CLI 命令的参数。
子命令参数分隔符
使用 --
分隔指定的 Airflow CLI 命令的参数:
Airflow 2
对于 Airflow 2 CLI 语法:
- 将复合 CLI 命令指定为子命令。
- 在
--
分隔符后面指定复合命令的任何参数,作为子命令参数。
gcloud composer environments run example-environment \
dags list -- --output=json
Airflow 1
对于 Airflow 1.10 CLI 语法:
- 将 CLI 命令指定为子命令。
- 在
--
分隔符后面指定所有参数。
gcloud composer environments run example-environment \
list_dags -- --report
默认位置
大多数 gcloud composer
命令需要位置信息。您可以使用 --location
标志指定位置,也可以设置默认位置。
示例
例如,如需在 Cloud Composer 环境中触发名为 sample_quickstart
且 ID 为 5077
的 DAG,请使用以下命令:
Airflow 2
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Airflow 1
gcloud composer environments run example-environment \
--location us-central1 trigger_dag -- sample_quickstart \
--run_id=5077
在专用 IP 环境中运行命令
如需在专用 IP 环境中运行 Airflow CLI 命令,请在可访问 GKE 集群控制层面端点的机器上运行这些命令。您的选项可能会因专用集群配置而有所不同。
如果在集群中停用了公共端点访问权限,则必须从同一 VPC 网络中的虚拟机运行 Airflow 命令。如需启用此路径,请在您的 VPC 网络中创建虚拟机。
如果启用了公共端点访问和控制平面授权的网络,则还可以通过添加到已授权网络的公共 IP 地址的机器运行 Airflow 命令。如需启用从您的机器进行访问的权限,请调整 GKE 集群的配置:
找到运行 Cloud Composer 环境的 GKE 集群的名称:
gcloud composer environments describe \ ENVIRONMENT_NAME \ --location LOCATION \ --format="value(config.gkeCluster)"
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
找到您的环境中要用于运行 Airflow CLI 命令的机器的公共 IP 地址。如果您使用的是 Cloud Shell,请使用
dig
查找 Cloud Shell 的外部 IP 地址:dig +short myip.opendns.com @resolver1.opendns.com
将机器的外部地址添加到集群的控制层面授权网络列表中:
gcloud container clusters update GKE_CLUSTER \ --enable-master-authorized-networks \ --master-authorized-networks EXISTING_AUTH_NETS,EXTERNAL_IP/32
替换:
将
EXISTING_AUTH_NETS
替换为您现有的控制层面授权网络列表。您可以通过运行以下命令查找已获授权的网络:gcloud container clusters describe GKE_CLUSTER \ --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
将
EXTERNAL_IP
替换为 Cloud Shell 的外部 IP 地址或要在其中运行 Airflow CLI 命令的机器的公共 IP。
在专用 IP 环境中运行 Airflow CLI 命令。
支持的 Airflow CLI 命令
如需查看支持的 Airflow CLI 命令的完整列表,请参阅 gcloud composer environments run
参考文档。