访问 Apache Airflow 网页界面

Cloud Composer 1 | Cloud Composer 2

Apache Airflow 有一个网页界面,可用于管理工作流 (DAG)、管理 Airflow 环境以及执行管理操作。例如,您可以使用该网页界面来查看 DAG 的进度,设置新的数据连接,或查看来自先前 DAG 运行的日志。

Airflow Web 服务器

每个 Cloud Composer 环境都有一个 Web 服务器,用于运行 Airflow 网页界面。Web 服务器是 Cloud Composer 环境架构的一部分。

Web 服务器会解析 dags/ 文件夹中的 DAG 定义文件,因此必须能够访问 DAG 的数据和资源才能加载 DAG 和处理 HTTP 请求。

Web 服务器会每 60 秒刷新一次 DAG,这是 Cloud Composer 中的默认 worker_refresh_interval。如果 Web 服务器无法在此刷新间隔内解析所有 DAG,则可能会发生 Web 服务器错误。

如果存在大量 DAG 文件,或加载 DAG 文件涉及重要工作负载,则 DAG 加载过程可能会超过 60 秒。为确保 Web 服务器无论 DAG 加载时间如何始终都可以访问,您可以配置异步 DAG 加载,以按预先配置的间隔在后台解析和加载 DAG(适用于 composer-1.7.1-airflow-1.10.2 及更高版本)。此配置还有助于减少 DAG 刷新时间。

除了超出工作器刷新间隔的情况外,Web 服务器在大多数情况下都能正常处理 DAG 加载故障。如果 Web 服务器因某些 DAG 而崩溃或退出,则浏览器可能返回错误。如需了解相关信息,请参阅排查 DAG 问题

如果由于 DAG 解析仍然存在 Web 服务器问题,建议您使用异步 DAG 加载。

准备工作

  • 您必须具有可以查看 Cloud Composer 环境的角色。如需了解详情,请参阅访问权限控制

  • 在创建环境期间,Cloud Composer 会为运行 Airflow 网页界面的 Web 服务器配置网址。该网址不可自定义。

  • 运行 Composer 1.13.4 或更高版本、Airflow 1.10.10 或更高版本以及 Python 3 的 Cloud Composer 环境支持 Airflow 网页界面的 Airflow 界面访问权限控制(Airflow 基于角色的访问权限控制)功能。

访问 Airflow 网页界面

Airflow Web 服务器服务会部署到 appspot.com 网域,并提供对 Airflow 网页界面的访问权限。Cloud Composer 1 根据用户身份和为用户定义的 IAM 政策绑定提供对界面的访问权限。Cloud Composer 1 使用 Identity-Aware Proxy 来实现此目的。

创建新的 Cloud Composer 环境后,该网页界面最长需要 25 分钟才能完成托管并可供访问。

从 Google Cloud 控制台访问网页界面

如需从 Google Cloud 控制台访问 Airflow 网页界面,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. Airflow 网络服务器列中,点击与您的环境对应的 Airflow 链接。

  3. 使用具有相应权限的 Google 账号登录。

限制对 Airflow Web 服务器的访问

Composer 环境可让您限制对 Airflow Web 服务器的访问:

  • 您可以禁止所有访问,也可以允许从特定 IPv4 或 IPv6 外部 IP 范围进行访问。
  • 无法使用专用 IP 地址配置允许的 IP 范围。

通过 gcloud 命令行工具检索网页界面网址

您可以通过任何网络浏览器访问 Airflow 网页界面。如需获取该网页界面的网址,请输入以下 gcloud 命令:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。

gcloud 命令显示了 Cloud Composer 环境的属性,包括该网页界面的网址。该网址被列为 airflowUri

config:
  airflowUri: https://example-tp.appspot.com

配置异步 DAG 加载

启用异步 DAG 加载时,Airflow 网络服务器会创建一个新进程。该进程会在后台加载 DAG,按 dagbag_sync_interval 选项定义的时间间隔发送新加载的 DAG,然后进入睡眠状态。

系统会定期唤醒该进程以重新加载 DAG,时间间隔由 collect_dags_interval 选项定义。

如需启用异步 DAG 加载,请执行以下操作:

  1. 停用 DAG 序列化。异步 DAG 加载不能与 DAG 序列化一起使用。使用 async_dagbag_loaderstore_serialized_dags Airflow 配置选项会导致 HTTP 503 错误,并会破坏您的环境。

  2. 替换以下 Airflow 配置选项:

    部分 Notes
    webserver async_dagbag_loader True 默认为 False
    webserver collect_dags_interval 30 默认值为 30。如需加快刷新速度,请使用较小的值。
    webserver dagbag_sync_interval 10 默认为 10
    webserver worker_refresh_interval 3600 默认值为 60。使用异步 DAG 加载时,您可以使用较长的刷新间隔。

重启 Web 服务器

调试或排查 Cloud Composer 环境时,部分问题可以通过重启 Airflow Web 服务器来解决。您可以使用 restartWebServer APIrestart-web-server gcloud 命令重启 Web 服务器:

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
  --location=LOCATION