提供者套件¶
Apache Airflow 2 以模組化方式建構。「核心」Apache Airflow 提供核心排程器功能,讓您可以編寫一些基本任務,但 Apache Airflow 的功能可以透過安裝稱為 providers
的額外套件來擴展。
提供者可以包含運算子、鉤子、感測器和傳輸運算子,以與眾多外部系統進行通訊,但它們也可以透過新功能擴展 Airflow 核心。
您可以單獨安裝這些提供者套件,以便與給定的服務介接。Apache Airflow
的提供者設計方式讓您可以輕鬆編寫自己的提供者。Apache Airflow 社群
開發和維護超過 80 個提供者套件,但您可以自由開發自己的提供者 - 您建立的提供者與社群編寫的提供者具有完全相同的功能,因此您可以發布並與他人分享這些提供者。
如果您想了解如何建立自己的自訂提供者,您可以在 如何建立您自己的提供者 中找到有關它的所有資訊。
所有社群管理提供者的完整列表可在 提供者索引 中找到。
您也可以在 運算子和鉤子參考 中查看所有社群提供者的運算子和鉤子索引
擴展 Airflow 核心功能¶
提供者讓您能夠擴展具有額外功能的 Airflow 核心。核心 airflow 提供基本的和穩固的排程功能,提供者擴展其功能。在這裡,我們描述所有自訂功能。
Airflow 自動發現哪些提供者添加了這些額外功能,一旦您安裝提供者套件並重新啟動 Airflow,這些功能將自動提供給 Airflow 使用者。
所有可以擴展的核心功能的摘要都可在 核心擴充功能 中找到。
身份驗證後端¶
提供者可以添加自訂身份驗證後端,讓您可以設定您的 Web 伺服器驗證使用者的方式,並將其與公共或私有身份驗證服務整合。
您可以在 身份驗證後端 中查看透過社群管理提供者可用的所有身份驗證後端
安裝和升級提供者¶
單獨的提供者套件提供了 1.10 中不可用的可能性
您可以升級到特定提供者的最新版本,而無需 Apache Airflow 核心升級。
您可以降級到特定提供者的先前版本,以防新版本引入一些問題,而不會影響主要的 Apache Airflow 核心套件。
您可以逐步發布和升級/降級提供者套件,彼此獨立。這表示您可以在您的環境中逐步驗證每個提供者套件更新,並遵循您環境中通常的測試。
提供者類型¶
提供者具有相同的功能 - 無論它們是由社群提供還是由第三方提供者提供。本章說明社群管理的提供者如何版本化和發布,以及您如何建立自己的提供者。
社群維護的提供者¶
從社群的角度來看,Airflow 以多個單獨的套件交付。Airflow 排程系統的核心作為 apache-airflow
套件交付,並且有超過 80 個提供者套件可以單獨安裝,稱為 Airflow 提供者 套件
。這些套件可作為 apache-airflow-providers
套件使用 - 例如,有 apache-airflow-providers-amazon
或 apache-airflow-providers-google
套件)。
社群維護的提供者與 Airflow 發行版本分開發行和版本化。我們遵循套件的 Semver 版本控制方案。某些版本的提供者套件可能依賴於特定版本的 Airflow,但我們的一般方法是,除非有充分的理由,否則新版本的提供者應與最新版本的 Airflow 2.x 搭配使用。詳細資訊將因提供者而異,如果特定提供者的特定版本有限制,限制了使用的 Airflow 版本,則它將作為提供者套件中依賴項的限制包含在內。
每個社群提供者都有對應的額外功能,可以在安裝 airflow 時使用,以將提供者與 Apache Airflow
一起安裝 - 例如,您可以使用這些額外功能安裝 airflow:apache-airflow[google,amazon]
(具有正確的限制 - 請參閱 Airflow® 安裝),您將把 apache-airflow-providers-amazon
和 apache-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/providers/src/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst
中建立和擴展社群管理的提供者。