提供者 (Providers)

Apache Airflow 2 采用模块化方式构建。Apache Airflow 的“核心”提供核心调度器功能,允许您编写一些基本任务,但 Apache Airflow 的功能可以通过安装称为 providers 的附加软件包来扩展。

提供者可以包含操作符、钩子、传感器和传输操作符,用于与众多外部系统进行通信,但它们也可以通过新功能扩展 Airflow 核心。

您可以单独安装这些提供者以接口给定的服务。 Apache Airflow 的提供者设计成您可以轻松编写自己的提供者。 Apache Airflow 社区 开发和维护超过 80 个提供者,但您可以自由开发自己的提供者——您构建的提供者与社区编写的提供者具有完全相同的功能,因此您可以发布并与他人分享这些提供者。

如果您想了解如何构建自己的自定义提供者,可以在 如何创建自己的提供者 中找到所有相关信息。

所有社区管理的提供者的完整列表可在 提供者索引 中找到。

您还可以在 操作符和钩子参考 中查看所有社区提供者的操作符和钩子索引。

扩展 Airflow 核心功能

提供者使您能够用额外功能扩展 Airflow 核心。Airflow 核心提供基本且可靠的调度功能,提供者则扩展其功能。此处我们将介绍所有自定义功能。

Airflow 会自动发现哪些提供者增加了这些额外功能,一旦您安装提供者软件包并重新启动 Airflow,这些功能就会自动对 Airflow 用户可用。

所有可扩展的核心功能的摘要可在 核心扩展 中找到。

配置

提供者可以有自己的配置选项,允许您配置它们的工作方式。

您可以在 配置 中查看所有具有自己配置的社区管理提供者。

自定义连接

提供者可以添加自定义连接类型,扩展连接表单并处理提供者定义的连接的自定义表单字段行为。

您可以在 连接 中查看所有通过社区管理提供者可用的自定义连接。

日志记录

提供者可以添加额外的任务日志记录功能。默认情况下,Apache Airflow 将任务日志保存在本地,并通过内部 http 服务器使其对 Airflow UI 可用。然而,提供者可以添加额外的日志记录功能,使 Airflow 日志可以写入远程服务并从这些服务检索。

您可以在 写入日志 中查看所有通过社区管理提供者可用的任务日志记录器。

秘密后端

Airflow 具备从秘密后端(而不是其自己的数据库)读取连接、变量和配置的功能。

您可以在 秘密后端 中查看所有通过社区管理提供者可用的秘密后端。

通知

提供者可以添加自定义通知,允许您配置如何接收关于任务/DAG 状态的通知。

您可以在 通知 中查看所有通过社区管理提供者可用的通知。

安装和升级提供者

独立的提供者带来了 1.10 版本中不具备的可能性。

  1. 您可以升级到特定提供者的最新版本,而无需升级 Apache Airflow 核心。

  2. 如果新版本出现问题,您可以降级到特定提供者的先前版本,而不会影响主要的 Apache Airflow 核心软件包。

  3. 您可以独立于彼此,逐步发布和升级/降级提供者。这意味着您可以在环境中逐步验证每个提供者软件包更新,遵循您环境中的常规测试。

提供者的类型

提供者具有相同的功能——无论它们是由社区提供还是第三方提供者。本章解释了社区管理提供者是如何版本化和发布的,以及如何创建自己的提供者。

社区维护的提供者

从社区的角度来看,Airflow 以多个独立的软件包形式提供。Airflow 调度系统的核心作为 apache-airflow 软件包提供,并且有超过 80 个提供者可以作为所谓的 Airflow providers 单独安装。这些软件包以 apache-airflow-providers 的形式提供——例如,有 apache-airflow-providers-amazonapache-airflow-providers-google 软件包)。

社区维护的提供者与 Airflow 版本分开发布和版本化。我们遵循 Semver 版本控制方案。一些提供者版本可能依赖于特定版本的 Airflow,但我们的一般方法是,除非有充分理由,否则新版本的提供者应兼容 Airflow 2.x 的最新版本。具体细节因提供者而异,如果特定提供者的特定版本存在限制,约束所使用的 Airflow 版本,则会将其包含在提供者软件包的依赖项限制中。

每个社区提供者都有相应的 extra,可以在安装 airflow 时用于同时安装提供者和 Apache Airflow——例如,您可以通过这些 extras 安装 airflow: apache-airflow[google,amazon] (使用正确的约束——参见 安装 Airflow®),您将同时安装适当版本的 apache-airflow-providers-amazonapache-airflow-providers-google 软件包与 Apache Airflow 一起。

一些社区提供者也存在跨提供者依赖关系。这些不是必需的依赖项,它们可能只是启用某些功能(例如,传输操作符通常会在不同的提供者之间建立依赖关系)。同样,这里的一般方法是提供者是向后兼容的,包括跨依赖关系。任何类型的破坏性更改以及对其他提供者特定版本的需求都会自动记录在每个提供者的发布说明中。

注意

对于 Airflow 1.10,我们还提供了 apache-airflow-backport-providers 软件包,可以与这些版本一起安装。这些提供者与 2.0 的相同,但会自动回溯移植以适用于 Airflow 1.10。回溯移植提供者的最后一次发布于 2021 年 3 月 17 日进行,并且由于 Airflow 1.10 已于 2021 年 6 月 17 日达到生命周期结束,因此回溯移植提供者将不再发布。

如果您想为 Apache Airflow 贡献,您可以在 https://github.com/apache/airflow/blob/main/providers/MANAGING_PROVIDERS_LIFECYCLE.rst 中查看如何构建和扩展社区管理提供者。

此条目是否有帮助?