提供者 (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 版本中不具備的可能性。
您可以升級到特定提供者的最新版本,而無需升級 Apache Airflow 核心。
如果新版本出現問題,您可以降級到特定提供者的先前版本,而不會影響主要的 Apache Airflow 核心軟體包。
您可以獨立於彼此,逐步釋出和升級/降級提供者。這意味著您可以在環境中逐步驗證每個提供者軟體包更新,遵循您環境中的常規測試。
提供者的型別¶
提供者具有相同的功能——無論它們是由社群提供還是第三方提供者。本章解釋了社群管理提供者是如何版本化和釋出的,以及如何建立自己的提供者。
社群維護的提供者¶
從社群的角度來看,Airflow 以多個獨立的軟體包形式提供。Airflow 排程系統的核心作為 apache-airflow 軟體包提供,並且有超過 80 個提供者可以作為所謂的 Airflow providers 單獨安裝。這些軟體包以 apache-airflow-providers 的形式提供——例如,有 apache-airflow-providers-amazon 或 apache-airflow-providers-google 軟體包)。
社群維護的提供者與 Airflow 版本分開發布和版本化。我們遵循 Semver 版本控制方案。一些提供者版本可能依賴於特定版本的 Airflow,但我們的一般方法是,除非有充分理由,否則新版本的提供者應相容 Airflow 2.x 的最新版本。具體細節因提供者而異,如果特定提供者的特定版本存在限制,約束所使用的 Airflow 版本,則會將其包含在提供者軟體包的依賴項限制中。
每個社群提供者都有相應的 extra,可以在安裝 airflow 時用於同時安裝提供者和 Apache Airflow——例如,您可以透過這些 extras 安裝 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。回溯移植提供者的最後一次釋出於 2021 年 3 月 17 日進行,並且由於 Airflow 1.10 已於 2021 年 6 月 17 日達到生命週期結束,因此回溯移植提供者將不再發布。
如果您想為 Apache Airflow 貢獻,您可以在 https://github.com/apache/airflow/blob/main/providers/MANAGING_PROVIDERS_LIFECYCLE.rst 中檢視如何構建和擴充套件社群管理提供者。