新增或更新 DAGs - Amazon Managed Workflows for Apache Airflow

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

新增或更新 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 版本的變更,請參閱版本備註頁面。

使用 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
  1. 使用以下命令列出所有 Amazon S3 儲存貯體。

    aws s3 ls
  2. 使用下列命令列出您環境的 Amazon S3 儲存貯體中的檔案和資料夾。

    aws s3 ls s3://YOUR_S3_BUCKET_NAME
  3. 下列命令會將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 主控台上傳
  1. 在 Amazon MWAA 主控台上開啟環境頁面。

  2. 選擇環境。

  3. S3 窗格中的 DAG 程式碼中選取 S3 儲存貯體連結,以在主控台中開啟儲存貯體。

  4. 選擇 dags 資料夾。

  5. 選擇上傳

  6. 選擇新增檔案

  7. 選取您 的本機副本dag_def.py,然後選擇上傳

在 Amazon MWAA 主控台上指定 DAGs路徑 (第一次)

下列步驟假設您正在指定名為 的 Amazon S3 儲存貯體上資料夾的路徑dags

  1. 在 Amazon MWAA 主控台上開啟環境頁面。

  2. 選擇您要執行 DAGs的環境。

  3. 選擇編輯

  4. Amazon S3 窗格中的 DAG 程式碼上,選擇 DAG 資料夾欄位旁的瀏覽 S3

  5. 選取您的dags資料夾。

  6. 選擇 Choose (選擇)

  7. 選擇下一步更新環境

存取 Apache Airflow UI 上的變更

您需要 AWS 帳戶 in AWS Identity and Access Management (IAM) 存取 Apache Airflow UI 的Apache Airflow UI 存取政策:AmazonMWAAWebServerAccess許可。

存取您的 Apache Airflow UI
  1. 在 Amazon MWAA 主控台上開啟環境頁面。

  2. 選擇環境。

  3. 選擇開啟氣流使用者介面

後續步驟?

在 GitHub 上使用 aws-mwaa-docker-images,在本機測試您的 DAGs、自訂外掛程式和 Python 相依性。