Airflow 命令行界面

Apache Airflow 有一个命令行界面 (CLI),可用于管理 Airflow 环境。此 CLI 非常适用于管理工作流、更改 Airflow 环境以及获取日志信息等任务。

Cloud Composer 可以通过 Google Cloud SDK 简化 Airflow CLI 命令。 安装 Google Cloud SDK 后,您可以通过 gcloud 命令行工具运行 gcloud composer environments run 命令来执行 Airflow CLI 子命令

准备工作

如需访问 Cloud Composer 环境中的 gcloud 命令行工具 (Airflow CLI),您需要拥有以下权限:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

如需了解详情,请参阅 Cloud Composer 访问权限控制

运行 Airflow CLI 命令

您可以使用以下命令在 Cloud Composer 环境中运行 Airflow CLI 命令:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

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

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

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

例如,如需检查 test/ 目录下的 DAG 中是否存在语法错误,请使用以下命令:

gcloud composer environments run test-environment \
     --location us-central1 \
     list_dags -- -sd /home/airflow/gcs/data/test

在专用 IP 环境中运行命令

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

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

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

  1. 使用以下命令查找运行 Composer 环境的 GKE 集群的名称:

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  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,SHELL_IP/32
    

    其中:

    • EXISTING_AUTH_NETS 是您现有的主节点授权网络列表。您可以运行以下命令来查找主服务器授权的网络:

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP 是您的 Cloud Shell 的外部 IP 地址。

现在,您应该可以在专用 IP 环境中运行 Airflow CLI 命令了。

支持的 Airflow 命令

对于运行 Airflow 1.9.0 及更高版本的环境,Cloud Composer 支持以下命令:

  • backfill
  • clear
  • connections
  • dag_state
  • kerberos
  • list_dags
  • list_tasks
  • pause
  • pool
  • render
  • run
  • task_failed_deps
  • task_state
  • test
  • trigger_dag
  • unpause
  • variables
  • version

Airflow 1.10.1 添加了对以下命令的支持:

  • delete_dag

Airflow 1.10.2 添加了对以下命令的支持:

  • list_dag_runs
  • next_execution