如何在我的 Amazon MWAA 環境中安裝自訂套件?

1 分的閱讀內容
0

我想要在 Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 環境中使用 plugins.zip 安裝自訂套件。

簡短說明

使用 requirements.txt 和 plugins.zip 檔案以在 Amazon MWAA 中安裝 Python 程式庫。如果您使用 requirements.txt 檔案來安裝套件,則依預設,系統會從 Python 套件索引 (來自 PyPI 網站) 進行套件安裝。如果您傳送了包含已編譯成品的程式庫 (.whl 檔案),則可以使用 plugins.zip 檔案來安裝這些 Python Wheel。

安裝自訂 Apache Airflow 運算子、勾點、感應器,或 plugins.zip 檔案的介面。該檔案寫在後端 Amazon ECS Fargate 容器上,位置為 /usr/local/airflow/plugins/。外掛程式還可用來匯出環境變數、驗證和設定檔案,例如 .crt.yaml

解決方法

安裝 Python Wheel 的程式庫

Python Wheel 為包含已編譯成品的套件檔案。若要安裝此套件,請將 (.whl) 檔案放在 plugins.zip 中,然後在 requirements.txt 中參考此檔案。如果您在將 .whl 檔案新增至 plugins.zip 之後更新環境,則會將 .whl 傳送至位置 /usr/local/airflow/plugins/。該位置位於基礎 Amazon Elastic Container Service (Amazon ECS) Fargate 容器中。

若要安裝 Python Wheel 的程式庫,請參閱如何在我的 Amazon MWAA 環境中安裝程式庫?

安裝自訂運算子、勾點、感應器或介面

Amazon MWAA 支援 Apache Airflow 的內建外掛程式管理員,可讓您使用自訂的 Apache Airflow 運算子、勾點、感應器或介面。使用平面或巢狀目錄結構,將這些自訂外掛程式放置在 plugins.zip 檔案中。如需自訂外掛程式的範例,請參閱自訂外掛程式的範例

建立自訂外掛程式以產生執行期環境變數

您還可以建立自訂外掛程式,該程式會在 Amazon MWAA 環境的執行期產生環境變數。然後,您可以在您的有向非循環圖 (DAG) 代碼中使用這些環境變數。如需詳細資訊,請參閱建立會產生執行期環境變數的自訂外掛程式

匯出 PEM、.crt 和組態檔案

如果您不需要在環境執行時持續更新特定檔案,則請使用 plugins.zip 來傳送這些檔案。此外,您可以放置不需要將存取權授予撰寫 DAG 的使用者的檔案。這些檔案包括憑證 (.crt) 檔案、PEM 檔案,以及組態 YAML 檔案。將檔案壓縮至 plugins.zip 之後,請將 plugins.zip 上傳至 S3。然後,更新環境。這些檔案會以存取 /usr/local/airflow/plugins 所需的權限進行複製。

若要將自訂 CA 憑證壓縮至 plugins.zip 檔案,請執行下列命令:

$ zip plugins.zip ca-certificates.crt

該檔案現在位於 /usr/local/airflow/plugins/ca-certificates.crt。若要將 kube_config.yaml 壓縮至 plugins.zip 檔案中,請執行下列命令:

$ zip plugins.zip kube_config.yaml

該檔案現在位於 /usr/local/airflow/plugins/kube_config.yaml

疑難排解安裝流程

如果您遇到安裝這些套件的問題,您可以使用 aws-mwaa-local-runner 本端測試 DAG、自訂外掛程式,或 Python 相依性。

若要疑難排解使用 plugins.zip 檔案安裝 Python 套件的問題,您可以從 Apache Airflow 工作程式或排程器日誌群組檢視日誌檔 (requirements_install_ip)。

**重要事項:**在 Amazon MWAA 環境上安裝套件或 plugins.zip 檔案之前,最佳實務是使用 Amazon MWAA CLI 公用程式來測試 Python 相依性和 plugins.zip 檔案 (aws-mwaa-local-runner)。

相關資訊

外掛程式

AWS 官方
AWS 官方已更新 6 個月前