访问 Airflow 命令行界面

Cloud Composer 1 | Cloud Composer 2

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

CLI 语法版本简介

Cloud Composer 1 中的 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 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 集群的配置:

  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 命令

如需查看支持的 Airflow CLI 命令的完整列表,请参阅 gcloud composer environments run 参考文档。