提供程序包

Apache Airflow 2 以模块化的方式构建。“核心”Apache Airflow 提供了核心调度程序功能,允许您编写一些基本任务,但 Apache Airflow 的功能可以通过安装额外的包来扩展,这些包称为 提供程序

提供程序可以包含操作器、钩子、传感器和传输操作器,以与多个外部系统通信,但它们也可以使用新功能扩展 Airflow 核心。

您可以单独安装这些提供程序包,以便与给定的服务交互。 Apache Airflow 的提供程序的设计方式使您可以轻松编写自己的提供程序。 Apache Airflow 社区 开发和维护着 80 多个提供程序包,但您可以自由开发自己的提供程序 - 您构建的提供程序与社区编写的提供程序具有完全相同的功能,因此您可以发布这些提供程序并与他人共享。

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

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

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

扩展 Airflow 核心功能

提供程序使您能够使用额外的功能扩展核心 Airflow。核心 Airflow 提供了基本且可靠的调度功能,提供程序扩展了其功能。这里我们描述所有自定义功能。

Airflow 会自动发现哪些提供程序添加了这些附加功能,一旦您安装了提供程序包并重新启动 Airflow,这些功能就会自动提供给 Airflow 用户。

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

配置

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

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

身份验证后端

提供程序可以添加自定义身份验证后端,允许您配置 Web 服务器对用户进行身份验证的方式,将其与公共或私有身份验证服务集成。

您可以在 身份验证后端 中查看通过社区管理的提供程序可用的所有身份验证后端

自定义连接

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

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

日志记录

提供程序可以添加额外的任务日志记录功能。默认情况下,Apache Airflow 会在本地保存任务日志,并通过内部 http 服务器将它们提供给 Airflow UI。但是,提供程序可以添加额外的日志记录功能,将 Airflow 日志写入远程服务并从这些服务中检索。

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

密钥后端

Airflow 能够从密钥后端而不是从其自己的数据库读取连接、变量和配置。

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

通知

提供程序可以添加自定义通知,允许您配置接收有关任务/DAG 状态的通知的方式。

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

安装和升级提供程序

单独的提供程序包提供了 1.10 版本中不可用的可能性

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

  2. 如果新版本引入了一些问题,您可以降级到特定提供程序的先前版本,而不会影响主要的 Apache Airflow 核心包。

  3. 您可以独立于其他提供程序包增量发布和升级/降级提供程序包。这意味着您可以按照环境中的常规测试,在您的环境中增量验证每个提供程序包更新。

提供程序的类型

提供程序具有相同的功能 - 无论它们是由社区提供还是第三方提供程序。本章解释了社区管理的提供程序是如何进行版本控制和发布的,以及如何创建您自己的提供程序。

社区维护的提供程序

从社区的角度来看,Airflow 是以多个独立的包交付的。Airflow 调度系统的核心作为 apache-airflow 包交付,还有 80 多个提供程序包可以单独安装,称为 Airflow 提供程序包。这些包以 apache-airflow-providers 包的形式提供 - 例如,有 apache-airflow-providers-amazonapache-airflow-providers-google 包)。

社区维护的提供程序与 Airflow 版本分开发布和版本控制。我们遵循 语义化版本控制 方案来处理包。某些版本的提供程序包可能依赖于特定版本的 Airflow,但我们的一般方法是,除非有充分的理由,否则新版本的提供程序应该与最近版本的 Airflow 2.x 一起使用。详细信息因提供程序而异,如果对特定版本的特定提供程序有限制,限制了所使用的 Airflow 版本,则这些限制将作为依赖项限制包含在提供程序包中。

每个社区提供程序都有相应的额外内容,可以在安装 airflow 时使用,以便将提供程序与 Apache Airflow 一起安装 - 例如,您可以使用以下额外内容安装 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。backport 提供程序的最后一个版本于 2021 年 3 月 17 日发布,并且将不再发布 backport 提供程序,因为 Airflow 1.10 已于 2021 年 6 月 17 日结束生命周期。

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

此条目有帮助吗?