本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷:建立和更新 Amazon MWAA 環境
本頁面上的主題包含您在建立和更新 Amazon Managed Workflows for Apache Airflow 環境時可能遇到的錯誤,以及如何解決這些錯誤。
內容
更新 requirements.txt
下列主題說明您在更新 時可能收到的錯誤requirements.txt。
我指定了新版本的 requirements.txt,需要超過 20 分鐘的時間來更新我的環境
如果您的環境需要超過 20 分鐘才能安裝新版本的requirements.txt檔案,則環境更新會失敗,而 Amazon MWAA 正在轉返至容器映像的最後一個穩定版本。
-
檢查套件版本。建議您一律為 中的 Python 相依性指定特定版本 (
==) 或最大版本 (<=)requirements.txt。 -
檢查 Apache Airflow 日誌。如果您啟用 Apache Airflow 日誌,請在 CloudWatch 主控台的日誌群組頁面上確認您的日誌群組
已成功建立。如果您取得空白日誌,最常見的原因是缺少寫入日誌之 CloudWatch 或 Amazon S3 執行角色的許可。若要進一步了解,請參閱 執行角色。 -
檢查 Apache Airflow 組態選項。如果您使用的是 Secrets Manager,請確認您指定為 Apache Airflow 組態選項的鍵值對已正確設定。若要進一步了解,請參閱 使用 AWS Secrets Manager 秘密設定 Apache Airflow 連線。
-
檢查 VPC 網路組態。若要進一步了解,請參閱 我嘗試建立環境,並且停滯在 Creating 狀態。
-
檢查執行角色許可。執行角色是具有許可政策的 AWS Identity and Access Management (IAM) 角色,授予 Amazon MWAA 代表您叫用其他 AWS 服務 (例如 Amazon S3、CloudWatch、Amazon SQS、Amazon ECR) 資源的許可。您的客戶受管金鑰或 AWS擁有的金鑰也需要被允許存取。若要進一步了解,請參閱 執行角色。
-
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。
外掛程式
下列主題說明您在設定或更新 Apache Airflow 外掛程式時可能遇到的問題。
Amazon MWAA 是否支援實作自訂 UI?
從 Apache Airflow v2.2.2 開始,Amazon MWAA 支援在 Apache Airflow Web 伺服器上安裝外掛程式,並實作自訂 UI。如果您的 Amazon MWAA 環境執行 Apache Airflow 2.0.2 版或更新版本,您將無法實作自訂 UI。
如需版本管理和升級現有環境的詳細資訊,請參閱 Amazon Managed Workflows for Apache Airflow 的 Apache Airflow 版本。
建立儲存貯體
下列主題說明您在建立 Amazon S3 儲存貯體時可能收到的錯誤。
我無法選取 S3 封鎖公開存取設定的選項
Amazon MWAA 環境的執行角色需要 Amazon S3 儲存貯體上 GetBucketPublicAccessBlock動作的許可,才能驗證儲存貯體封鎖的公開存取。建議下列步驟:
-
依照步驟將 JSON 政策連接至您的執行角色。
-
連接下列 JSON 政策:
{ "Effect":"Allow", "Action":[ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }使用 Amazon S3
3 儲存貯體名稱取代 amzn-s3-demo-bucket中的範例預留位置。 -
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。
建立環境
下列主題說明您在建立環境時可能收到的錯誤。
我嘗試建立環境,並且停滯在 Creating 狀態
建議下列步驟:
-
使用公有路由檢查 VPC 網路。如果您使用具有網際網路存取的 Amazon VPC,請確認下列事項:
-
您的 Amazon VPC 已設定為允許 Amazon MWAA 環境使用的不同 AWS 資源之間的網路流量,如 中所定義關於 Amazon MWAA 上的聯網。例如,您的 VPC 安全群組必須允許自我參考規則中的所有流量,或選擇性地指定 HTTPS 連接埠範圍 443 和 TCP 連接埠範圍 5432 的連接埠範圍。
-
-
檢查具有私有路由的 VPC 網路。如果您使用沒有網際網路存取的 Amazon VPC,請確認下列事項:
-
您的 Amazon VPC 已設定為允許 Amazon MWAA 環境不同 AWS 資源之間的網路流量,如 中所定義關於 Amazon MWAA 上的聯網。例如,您的兩個私有子網路不得具有 NAT 閘道 (或 NAT 執行個體) 的路由表,也不得具有網際網路閘道。
-
-
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。
我嘗試建立環境,但顯示狀態為 Create failed
建議下列步驟:
-
檢查 VPC 網路組態。若要進一步了解,請參閱 我嘗試建立環境,並且停滯在 Creating 狀態。
-
檢查使用者許可。Amazon MWAA 會在建立環境之前,針對使用者的登入資料執行試轉。您的 AWS 帳戶 可能沒有在 AWS Identity and Access Management (IAM) 中建立環境部分資源的許可。例如,如果您選擇私有網路 Apache Airflow 存取模式,您的管理員 AWS 帳戶 必須已為您的環境授予 AmazonMWAAFullConsoleAccess 存取控制政策的存取權,這可讓您的帳戶建立 VPC 端點。
-
檢查執行角色許可。執行角色是具有許可政策的 AWS Identity and Access Management (IAM) 角色,授予 Amazon MWAA 代表您叫用其他 AWS 服務 (例如 Amazon S3、CloudWatch、Amazon SQS、Amazon ECR) 資源的許可。您的客戶受管金鑰或 AWS擁有的金鑰也需要被允許存取。若要進一步了解,請參閱 執行角色。
-
檢查 Apache Airflow 日誌。如果您啟用 Apache Airflow 日誌,請在 CloudWatch 主控台的日誌群組頁面上確認您的日誌群組
已成功建立。如果您取得空白日誌,最常見的原因是缺少寫入日誌之 CloudWatch 或 Amazon S3 執行角色的許可。若要進一步了解,請參閱 執行角色。 -
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。 -
如果您是在沒有網際網路存取的情況下使用 Amazon VPC,請確定您已建立 Amazon S3 閘道端點,並授予 Amazon ECR 存取 Amazon S3 所需的最低權限。若要進一步了解如何建立 Amazon S3 閘道端點,請參閱下列內容:
我嘗試選取 VPC 並收到Network Failure錯誤
建議下列步驟:
-
如果您在建立環境
Network Failure時嘗試選取 Amazon VPC 時發生錯誤,請關閉正在執行的任何瀏覽器內代理程式,然後再試一次。
我嘗試建立環境並收到「必須傳遞」的服務、分割區或資源錯誤
建議下列步驟:
-
您可能會收到此錯誤,因為您為 Amazon S3 儲存貯體指定的 URI 在 URI 結尾包含 '/'。我們建議移除路徑中的 '/'。值必須採用下列格式:
s3://amzn-s3-demo-bucket
我嘗試建立環境,並顯示狀態為 ,Available但當我嘗試存取 Airflow UI 時,會顯示 Empty Reply from Server或 502 Bad Gateway錯誤
建議下列步驟:
-
檢查 VPC 安全群組組態。若要進一步了解,請參閱 我嘗試建立環境,並且停滯在 Creating 狀態。
-
確認您在 中列出的任何 Apache Airflow 套件
requirements.txt對應至您在 Amazon MWAA 上執行的 Apache Airflow 版本。若要進一步了解,請參閱 安裝 Python 相依性。 -
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。
我嘗試建立環境,而我的使用者名稱是一組隨機字元名稱
-
Apache Airflow 的使用者名稱上限為 64 個字元。如果您的 AWS Identity and Access Management (IAM) 角色超過此長度,則會使用雜湊演算法來減少它,同時保持唯一。
更新環境
下列主題說明您在更新環境時可能收到的錯誤。
我嘗試變更環境類別,但更新失敗
如果您將環境更新為不同的環境類別 (例如將 變更為 mw1.medium mw1.small),且更新環境的請求失敗,則環境狀態會進入 UPDATE_FAILED 狀態,且環境會回復為 ,並根據環境先前穩定版本計費。
建議下列步驟:
-
在 GitHub 上使用 aws-mwaa-docker-images
,在本機測試您的 DAGs、自訂外掛程式和 Python 相依性。 -
若要執行故障診斷指令碼來檢查 Amazon MWAA 環境的 Amazon VPC 網路設定和組態,請參閱 GitHub AWS 支援工具中的驗證環境
指令碼。
存取環境
下列主題說明您在存取 環境時可能收到的錯誤。
我無法存取 Apache Airflow UI
建議下列步驟:
-
檢查使用者許可。您可能尚未獲得許可政策的存取權,該政策允許您存取 Apache Airflow UI。若要進一步了解,請參閱 存取 Amazon MWAA 環境。
-
檢查網路存取。這可能是因為您選擇了私有網路存取模式。如果 Apache Airflow UI 的 URL 格式如下
387fbcn-8dh4-9hfj-0dnd-834jhdfb-vpce.c10.us-west-2.airflow.amazonaws.com,表示您使用 Apache Airflow Web 伺服器的私有路由。您可以將 Apache Airflow 存取模式更新為公有網路存取模式,或建立機制來存取 Apache Airflow Web 伺服器的 VPC 端點。若要進一步了解,請參閱 在 Amazon MWAA 上管理對服務特定 Amazon VPC 端點的存取。