Airflow 命令行界面

Apache Airflow 具有命令行界面 (CLI),可用于执行任务,例如触发和管理 DAG、获取有关 DAG 运行和任务的信息、添加和删除连接和用户。

CLI 语法版本简介

Airflow 为 CLI 命令提供两种不同的语法:

准备工作

您必须拥有将 gcloud 命令行工具与 Cloud Composer 搭配使用的足够权限。如需了解详情,请参阅访问权限控制

运行 Airflow CLI 命令

要在您的环境中运行 Airflow CLI 命令,请使用 gcloud

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的 Compute Engine 区域。
  • SUBCOMMAND 替换为受支持的 Airflow CLI 命令之一。
  • SUBCOMMAND_ARGUMENTS 替换为 Airflow CLI 命令的参数。

子命令参数分隔符

使用 -- 分隔指定的 Airflow CLI 命令的参数:

Airflow 1.10 CLI

对于 Airflow 2.0 CLI 语法:

  • 将 CLI 命令指定为子命令。
  • -- 分隔符后面指定所有参数。
gcloud composer composer environments run example-environment \
    list_dags -- --report

Airflow 2.0 CLI

对于 Airflow 2.0 CLI 语法:

  • 将复合 CLI 命令指定为子命令。
  • -- 分隔符后面指定复合命令的任何参数,作为子命令参数。
gcloud beta composer composer environments run example-environment \
    dags list -- --output=json

默认位置

大多数 gcloud composer 命令需要位置信息。您可以使用 --location 标志指定位置,也可以设置默认位置

示例

例如,如需在 Cloud Composer 环境中触发名为 sample_quickstart 且 ID 为 5077 的 DAG,请使用以下命令:

Airflow 1.10 CLI

gcloud composer environments run example-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

Airflow 2.0 CLI

gcloud beta composer composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

在专用 IP 环境中运行命令

如需在专用 IP 环境中运行 Airflow CLI 命令,请在可访问 GKE 集群主服务器端点的机器上运行这些命令。您的选项可能会因专用集群配置而有所不同。

如果在集群中停用了公共端点访问权限,则必须从同一 VPC 网络中的虚拟机运行 Airflow 命令。如需启用此路径,请在您的 VPC 网络中创建虚拟机

如果启用了公共端点访问权限和主授权网络,您还可以从具有添加到主授权网络的公共 IP 地址的机器运行 Airflow 命令。如需启用从您的机器进行访问的权限,请调整 GKE 集群的配置:

  1. 找到运行 Cloud Composer 环境的 GKE 集群的名称:

    gcloud composer environments describe \
        ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    

    替换:

    • ENVIRONMENT_NAME 替换为环境的名称。
    • LOCATION 替换为环境所在的 Compute Engine 区域。
  2. 找到您的环境中要用于运行 Airflow CLI 命令的机器的公共 IP 地址。如果您使用的是 Cloud Shell,请使用 dig 查找 Cloud Shell 的外部 IP 地址:

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. 将您的机器的外部地址添加到集群的主服务器授权网络列表中:

    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。

  4. 在专用 IP 环境中运行 Airflow CLI 命令。

支持的 Airflow CLI 命令

Cloud Composer 根据环境中使用的 Airflow CLI 版本支持 Airflow 命令: