本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
新增或更新 DAGs
定向無環圖形 (DAGs) 是在將 DAG 結構定義為程式碼的 Python 檔案中定義。您可以使用 AWS CLI 或 Amazon S3 主控台將 DAGs上傳至您的環境。本主題說明使用 Amazon S3 儲存貯體中的 dags
資料夾,在 Amazon Managed Workflows for Apache Airflow 環境中新增或更新 Apache Airflow DAGs 的步驟。
章節
先決條件
您將需要下列項目,才能完成此頁面上的步驟。
-
許可 — 您的管理員 AWS 帳戶 必須已授予您環境的 AmazonMWAAFullConsoleAccess 存取控制政策的存取權。此外,您的執行角色必須允許 Amazon MWAA 環境存取您的環境所使用的 AWS 資源。
-
存取 — 如果您需要存取公有儲存庫,才能直接在 Web 伺服器上安裝相依性,您的環境必須設定公有網路 Web 伺服器存取。如需詳細資訊,請參閱 Apache Airflow 存取模式。
-
Amazon S3 組態 — 用於在 中存放 DAGs、自訂外掛程式
plugins.zip
和 Python 相依性的 Amazon S3 儲存貯體requirements.txt
必須設定為啟用公開存取封鎖和版本控制。
運作方式
定向無環圖形 (DAG) 是在將 DAG 結構定義為程式碼的單一 Python 檔案中定義。它包含下列項目:
若要在 Amazon MWAA 環境中執行 Apache Airflow 平台,您需要將 DAG 定義複製到儲存貯體中的 dags
資料夾。例如,儲存貯體中的 DAG 資料夾應該類似:
範例 DAG 資料夾
dags/ └ dag_def.py
Amazon MWAA 每 30 秒會自動將新的和變更的物件從 Amazon S3 儲存貯體同步至 Amazon MWAA 排程器和工作者容器的/usr/local/airflow/dags
資料夾,無論檔案類型為何,都會保留 Amazon S3 來源的檔案階層。在 Apache Airflow UI 中列出新 DAGs 所需的時間由 控制scheduler.dag_dir_list_interval
。對現有 DAGs的變更將在下一個 DAG 處理迴圈中收取。
注意
您不需要在 DAG 資料夾中包含airflow.cfg
組態檔案。您可以從 Amazon MWAA 主控台覆寫預設 Apache Airflow 組態。如需詳細資訊,請參閱 在 Amazon MWAA 上使用 Apache Airflow 組態選項。
有哪些變更?
若要檢閱特定 Apache Airflow 版本的變更,請參閱版本備註
-
Apache Airflow v3 組態:組態參考
-
Apache Airflow v2 公有界面資訊:Airflow 的公有界面
使用 Amazon MWAA CLI 公用程式測試 DAGs
-
命令列界面 (CLI) 公用程式會在本機複寫 Amazon Managed Workflows for Apache Airflow 環境。
-
CLI 會在本機建置類似於 Amazon MWAA 生產映像的 Docker 容器映像。這可讓您執行本機 Apache Airflow 環境,在部署到 Amazon MWAA 之前開發和測試 DAGs、自訂外掛程式和相依性。
-
若要執行 CLI,請參閱 GitHub 上的 aws-mwaa-docker-images
。
將 DAG 程式碼上傳至 Amazon S3
您可以使用 Amazon S3 主控台或 AWS Command Line Interface (AWS CLI) 將 DAG 程式碼上傳至 Amazon S3 儲存貯體。下列步驟假設您正在將程式碼 (.py
) 上傳到 Amazon S3 儲存貯體dags
中名為 的資料夾。
使用 AWS CLI
AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可讓您使用命令列 Shell 中的命令與 AWS 服務互動。若要完成此頁面上的步驟,您需要下列項目:
使用 上傳 AWS CLI
-
使用以下命令列出所有 Amazon S3 儲存貯體。
aws s3 ls
-
使用下列命令列出您環境的 Amazon S3 儲存貯體中的檔案和資料夾。
aws s3 ls s3://
YOUR_S3_BUCKET_NAME
-
下列命令會將
dag_def.py
檔案上傳至dags
資料夾。aws s3 cp dag_def.py s3://
amzn-s3-demo-bucket
/dags/如果您的 Amazon S3 儲存貯體上
dags
尚不存在名為 的資料夾,此命令會建立dags
資料夾,並將名為 的檔案上傳dag_def.py
到新資料夾。
使用 Amazon S3 主控台
Amazon S3 主控台是一種 Web 型使用者介面,可讓您建立和管理 Amazon S3 儲存貯體中的資源。下列步驟假設您有一個名為 DAGs 資料夾dags
。
使用 Amazon S3 主控台上傳
-
在 Amazon MWAA 主控台上開啟環境
頁面。 -
選擇環境。
-
在 S3 窗格中的 DAG 程式碼中選取 S3 儲存貯體連結,以在主控台中開啟儲存貯體。
-
選擇
dags
資料夾。 -
選擇上傳。
-
選擇新增檔案。
-
選取您 的本機副本
dag_def.py
,然後選擇上傳。
在 Amazon MWAA 主控台上指定 DAGs路徑 (第一次)
下列步驟假設您正在指定名為 的 Amazon S3 儲存貯體上資料夾的路徑dags
。
-
在 Amazon MWAA 主控台上開啟環境
頁面。 -
選擇您要執行 DAGs的環境。
-
選擇編輯。
-
在 Amazon S3 窗格中的 DAG 程式碼上,選擇 DAG 資料夾欄位旁的瀏覽 S3。
-
選取您的
dags
資料夾。 -
選擇 Choose (選擇)。
-
選擇下一步,更新環境。
存取 Apache Airflow UI 上的變更
您需要 AWS 帳戶 in AWS Identity and Access Management (IAM) 存取 Apache Airflow UI 的Apache Airflow UI 存取政策:AmazonMWAAWebServerAccess許可。
存取您的 Apache Airflow UI
-
在 Amazon MWAA 主控台上開啟環境
頁面。 -
選擇環境。
-
選擇開啟氣流使用者介面。
後續步驟?
在 GitHub 上使用 aws-mwaa-docker-images