疑難排解:建立和更新 Amazon MWAA 環境 - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

疑難排解:建立和更新 Amazon MWAA 環境

本頁的主題包含建立和更新 Apache Airflow 環境的 Amazon 受管工作流程時可能遇到的錯誤,以及如何解決這些錯誤。

更新 requirements.txt

下列主題說明您在更新requirements.txt.

我指定了我的一個新版本requirements.txt,更新我的環境需要超過 20 分鐘

如果您的環境需要超過二十分鐘才能安裝新版本的requirements.txt檔案,則環境更新會失敗,而 Amazon MWAA 會復原至容器映像的最新穩定版本。

  1. 檢查套件版本。我們建議您始終指定一個特定的版本(==<=)或最大版本()為您的requirements.txt.

  2. 檢查阿帕奇氣流日誌。如果您已啟用 Apache Airflow 記錄檔,請在 CloudWatch 主控台的 [記錄群組] 頁面上確認您的記錄群組已成功建立。如果您看到空白日誌,最常見的原因是在寫入日誌的 Amazon S3 CloudWatch 或 Amazon S3 的執行角色中缺少許可。如需進一步了解,請參閱 執行角色

  3. 檢查 Apache 氣流組態選項。如果您使用的是 Secrets Manager,請確認您指定為 Apache 氣流組態選項的索引鍵值配對是否已正確設定。如需進一步了解,請參閱 使用 AWS Secrets Manager 密碼設定 Apache 氣流連線

  4. 檢查VPC網路組態。如需進一步了解,請參閱 我試圖創建一個環境,它停留在「創建」狀態

  5. 檢查執行角色權限。執行角色是具有MWAA許可政策的 AWS Identity and Access Management (IAM) 角色,可授與 Amazon 代表您叫用其他 AWS 服務 (例如 Amazon S3 CloudWatch、Amazon SQS、AmazonECR) 資源的權限。您的客戶管理金鑰AWS 擁有的金鑰也需要被允許存取。如需進一步了解,請參閱 執行角色

  6. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

外掛程式

下列主題說明您在設定或更新 Apache Airflow 外掛程式時可能遇到的問題。

Amazon 是否MWAA支持實施自定義 UI?

從 Apache 氣流 v2.2.2 開始,Amazon MWAA 支持在 Apache 氣流網絡服務器上安裝插件,並實現自定義用戶界面。如果您的 Amazon MWAA 環境正在執行 Apache 氣流 v2.0.2 或更早版本,您將無法實作自訂使用者介面。

如需版本管理和升級現有環境的詳細資訊,請參閱Amazon Managed Workflows for Apache Airflow 上的 Apache Airflow 版本

我能夠通過插件在 Amazon MWAA 本地運行器上實現自定義 UI 更改,但是當我嘗試在 Amazon 上執行相同的操作時MWAA,我沒有看到我的更改也沒有任何錯誤。為什麼會發生這種情況?

Amazon 本MWAA地運行器將所有 Apache 氣流組件捆綁在一個映像中,允許您應用自定義 UI 插件更改。

建立值區

下列主題說明您在建立 Amazon S3 儲存貯體時可能收到的錯誤。

我無法選擇 S3 阻止公共訪問設置的選項

Amazon MWAA 環境的執行角色需要 Amazon S3 儲存貯體上GetBucketPublicAccessBlock動作的許可,才能驗證儲存貯體封鎖的公共存取。建議下列步驟:

  1. 請依照步驟將JSON原則附加至您的執行角色

  2. 附上下列JSON原則:

    { "Effect":"Allow", "Action":[ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ], "Resource":[ "arn:aws:s3:::YOUR_S3_BUCKET_NAME", "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*" ] }

    取代範例預留位置 YOUR_S3_BUCKET_NAME 使用您的 Amazon S3 存儲桶名稱,例如 my-mwaa-unique-s3-bucket-name.

  3. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

建立 環境

下列主題說明您在建立環境時可能會收到的錯誤。

我試圖創建一個環境,它停留在「創建」狀態

建議下列步驟:

  1. 使用公共路由檢查VPC網絡。如果您使用VPC具有互聯網訪問權限的 Amazon,請驗證以下內容:

    1. 您的 Amazon 設定VPC為允許 Amazon MWAA 環境使用的不同 AWS 資源之間的網路流量,如中所定義關於 Amazon 上的聯網 MWAA。例如,您的VPC安全性群組必須允許自我參照規則中的所有流量,或選擇性地指定連接埠範圍 443 的HTTPS連接埠範圍和連TCP接埠範圍 5432。

  2. 使用私人路由檢查VPC網絡。如果您在VPC沒有網際網路存取的情況下使用 Amazon,請驗證以下事項:

    1. 您的 Amazon 設定VPC為允許 Amazon MWAA 環境的不同資 AWS 源之間的網路流量,如中所定義關於 Amazon 上的聯網 MWAA。例如,您的兩個私有子網路得有NAT通往閘道 (或NAT執行個體) 的路由表,不能有網際網路閘道。

  3. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

我試圖創建一個環境,但它顯示狀態為「創建失敗」

建議下列步驟:

  1. 檢查VPC網路組態。如需進一步了解,請參閱 我試圖創建一個環境,它停留在「創建」狀態

  2. 檢查使用者權限。Amazon 在建立環境之前,對使用者的登入資料執行乾式MWAA執行。您的 AWS 帳戶可能沒有 AWS Identity and Access Management (IAM) 中的權限,無法為環境建立某些資源。例如,如果您選擇私人網路 Apache Airflow 存取模式,您的 AWS 帳戶必須已被授與管理員存取您環境的 A mazonMWAAFull ConsoleAccess 存取控制原則,這可讓您的帳戶建立VPC端點。

  3. 檢查執行角色權限。執行角色是具有MWAA許可政策的 AWS Identity and Access Management (IAM) 角色,可授與 Amazon 代表您叫用其他 AWS 服務 (例如 Amazon S3 CloudWatch、Amazon SQS、AmazonECR) 資源的權限。您的客戶管理金鑰AWS 擁有的金鑰也需要被允許存取。如需進一步了解,請參閱 執行角色

  4. 檢查阿帕奇氣流日誌。如果您已啟用 Apache Airflow 記錄檔,請在 CloudWatch 主控台的 [記錄群組] 頁面上確認您的記錄群組已成功建立。如果您看到空白日誌,最常見的原因是在寫入日誌的 Amazon S3 CloudWatch 或 Amazon S3 的執行角色中缺少許可。如需進一步了解,請參閱 執行角色

  5. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

  6. 如果您在VPC沒有網際網路存取的情況下使用 Amazon,請確保您已建立 Amazon S3 閘道端點,並向 Amazon 授予存取 Amazon ECR S3 所需的最低權限。若要進一步了解如何建立 Amazon S3 閘道端點,請參閱下列內容:

我試圖選擇一個VPC並收到「網絡故障」錯誤

建議下列步驟:

  • 如果在建立環境時嘗試選取 Amazon VPC 時看到「網路故障」錯誤,請關閉任何正在執行的瀏覽器內 Proxy,然後再試一次。

我嘗試創建一個環境並收到服務,分區或資源「必須傳遞」錯誤

建議下列步驟:

  • 您可能會收到此錯誤,因為您為 Amazon S3 儲存貯體指定的結尾包含「/」URI。URI我們建議移除路徑中的「/」。該值應採用以下格式:

    s3://your-bucket-name

我嘗試創建一個環境,它將狀態顯示為「可用」,但是當我嘗試訪問 Airflow UI 時,會顯示「來自服務器的空回复」或「502 錯誤網關」錯誤

建議下列步驟:

  1. 檢查VPC安全群組組態。如需進一步了解,請參閱 我試圖創建一個環境,它停留在「創建」狀態

  2. 確認您在列出的任何 Apache 氣流套件都requirements.txt對應於您在 Amazon 上執行的 Apache 氣流版本MWAA。如需進一步了解,請參閱 安裝 Python 相依性

  3. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

我試圖創建一個環境,我的用戶名是一堆隨機字符名稱

  • Apache 氣流最多有 64 個字元的使用者名稱。如果您的 AWS Identity and Access Management (IAM)角色超過此長度,則使用散列算法來減少它,同時保持唯一性。

更新環境

下列主題說明您在更新環境時可能會收到的錯誤。

我嘗試更改環境類,但更新失敗

如果您將環境更新為不同的環境類別 (例如將環境變更為mw1.small),且更新環境的要求失敗,則環境狀態會進入UPDATE_FAILED狀態,而且環境會復原至環境,並根據環境的先前穩定版本計費。mw1.medium

建議下列步驟:

  1. 使用 aws-mwaa-local-runneron 在本地測試您的DAGs自定義插件和 Python 依賴關係 GitHub。

  2. 若要執行疑難排解指令碼來檢查 Amazon VPC 網路設定和 Amazon MWAA 環境的組態,請參閱 Sup AWS port 工具中的驗證環境指令碼 GitHub。

存取環境

下列主題說明存取環境時可能會收到的錯誤。

我無法訪問阿帕奇氣流用戶界面

建議下列步驟:

  1. 檢查使用者權限。您可能沒有被授與權限原則的存取權,該原則可讓您檢視 Apache 氣流使用者介面。如需進一步了解,請參閱 存取 Amazon MWAA環境

  2. 檢查網路存取。這可能是因為您選擇了私人網路存取模式。如果您URL的 Apache 氣流使用者介面採用下列格式387fbcn-8dh4-9hfj-0dnd-834jhdfb-vpce.c10.us-west-2.airflow.amazonaws.com,表示您正在使用 Apache 氣流 Web 伺服器私人路由。您可以將 Apache 氣流存取模式更新為公用網路存取模式,或建立機制來存取 Apache 氣流網頁伺服器的VPC端點。如需進一步了解,請參閱在 Amazon MWAA 上管理服務特定 Amazon VPC 端點的存取