

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

# 新增或更新 DAGs
<a name="configuring-dag-folder"></a>

定向無環圖形 (DAGs) 是在將 DAG 結構定義為程式碼的 Python 檔案中定義。您可以使用 AWS CLI 或 Amazon S3 主控台將 DAGs上傳至您的環境。本主題說明使用 Amazon S3 儲存貯體中的 `dags` 資料夾，在 Amazon Managed Workflows for Apache Airflow 環境中新增或更新 Apache Airflow DAGs 的步驟。

**Topics**
+ [先決條件](#configuring-dag-folder-prereqs)
+ [運作方式](#configuring-dag-folder-how)
+ [有哪些變更？](#configuring-dag-folder-changed)
+ [使用 Amazon MWAA CLI 公用程式測試 DAGs](#working-dag-folder-cli-utility)
+ [將 DAG 程式碼上傳至 Amazon S3](#configuring-dag-folder-uploading)
+ [在 Amazon MWAA 主控台上指定 DAGs路徑 （第一次）](#configuring-dag-folder-mwaaconsole)
+ [存取 Apache Airflow UI 上的變更](#configuring-dag-folder-mwaaconsole-view)
+ [後續步驟？](#configuring-dag-folder-next-up)

## 先決條件
<a name="configuring-dag-folder-prereqs"></a>

您將需要下列項目，才能完成此頁面上的步驟。
+ **許可** — 您的管理員 AWS 帳戶 必須已授予您環境的 [AmazonMWAAFullConsoleAccess](access-policies.md#console-full-access) 存取控制政策的存取權。此外，您的[執行角色](mwaa-create-role.md)必須允許 Amazon MWAA 環境，才能存取環境所使用的 AWS 資源。
+ **存取** — 如果您需要存取公有儲存庫，才能直接在 Web 伺服器上安裝相依性，您的環境必須設定**公有網路** Web 伺服器存取。如需詳細資訊，請參閱 [Apache Airflow 存取模式](configuring-networking.md)。
+ **Amazon S3 組態** — 用於在 中存放 DAGs、自訂外掛程式`plugins.zip`和 Python 相依性的 [Amazon S3 儲存貯](mwaa-s3-bucket.md)體`requirements.txt`必須設定為啟用*公開存取封鎖*和*版本控制*。

## 運作方式
<a name="configuring-dag-folder-how"></a>

導向無環圖形 (DAG) 是在將 DAG 結構定義為程式碼的單一 Python 檔案中定義。它包含下列項目：
+ [DAG](https://airflow.apache.org/docs/stable/concepts.html#dags) 定義。
+ 描述如何執行 DAG 和要執行之[任務](https://airflow.apache.org/docs/stable/concepts.html#tasks)的[運算](https://airflow.apache.org/concepts.html#operators)子。
+ 描述執行任務順序的[運算子關係](https://airflow.apache.org/concepts.html#bitshift-composition)。

若要在 Amazon MWAA 環境上執行 Apache Airflow 平台，您需要將 DAG 定義複製到儲存貯體中的 `dags` 資料夾。例如，儲存貯體中的 DAG 資料夾應該類似：

**Example DAG 資料夾**  

```
dags/
└ dag_def.py
```

Amazon MWAA 每 30 秒會自動將新的和變更的物件從 Amazon S3 儲存貯體同步至 Amazon MWAA 排程器和工作者容器的`/usr/local/airflow/dags`資料夾，無論檔案類型為何，都會保留 Amazon S3 來源的檔案階層。新 DAGs 在 Apache Airflow UI 中列出所需的時間由 控制`scheduler.dag\_dir\_list\_interval`。對現有 DAGs的變更將在下一個 [DAG 處理迴圈](best-practices-tuning.md#best-practices-tuning-scheduler)上收取。

**注意**  
您不需要在 DAG 資料夾中包含`airflow.cfg`組態檔案。您可以從 Amazon MWAA 主控台覆寫預設 Apache Airflow 組態。如需詳細資訊，請參閱 [在 Amazon MWAA 上使用 Apache Airflow 組態選項](configuring-env-variables.md)。

## 有哪些變更？
<a name="configuring-dag-folder-changed"></a>

若要檢閱特定 Apache Airflow 版本的變更，請參閱[版本備註](https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html#release-notes)頁面。
+ Apache Airflow v3 組態：[組態參考](https://airflow.apache.org/docs/apache-airflow/3.0.6/configurations-ref.html)
+ Apache Airflow v2 公有界面資訊：[Airflow 的公有界面](https://airflow.apache.org/docs/apache-airflow/2.10.3/public-airflow-interface.html)

## 使用 Amazon MWAA CLI 公用程式測試 DAGs
<a name="working-dag-folder-cli-utility"></a>
+ 命令列界面 (CLI) 公用程式會在本機複寫 Amazon Managed Workflows for Apache Airflow 環境。
+ CLI 會在本機建置類似於 Amazon MWAA 生產映像的 Docker 容器映像。您可以使用它來執行本機 Apache Airflow 環境，以在部署到 Amazon MWAA 之前開發和測試 DAGs、自訂外掛程式和相依性。
+ 若要執行 CLI，請參閱 GitHub 上的 [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)。

## 將 DAG 程式碼上傳至 Amazon S3
<a name="configuring-dag-folder-uploading"></a>

您可以使用 Amazon S3 主控台或 AWS Command Line Interface (AWS CLI) 將 DAG 程式碼上傳至 Amazon S3 儲存貯體。下列步驟假設您正在將程式碼 (`.py`) 上傳到 Amazon S3 儲存貯體`dags`中名為 的資料夾。

### 使用 AWS CLI
<a name="configuring-dag-folder-cli"></a>

 AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具，可讓您在命令列 Shell 中使用命令與 AWS 服務互動。若要完成此頁面上的步驟，您需要下列項目：
+ [AWS CLI – 安裝第 2 版](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)。
+ [AWS CLI – 使用 進行快速組態`aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

**使用 上傳 AWS CLI**

1. 使用下列命令列出所有 Amazon S3 儲存貯體。

   ```
   aws s3 ls
   ```

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

   ```
   aws s3 ls s3://{{YOUR_S3_BUCKET_NAME}}
   ```

1. 下列命令會將`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 主控台
<a name="configuring-dag-folder-console"></a>

Amazon S3 主控台是以 Web 為基礎的使用者介面，可用來建立和管理 Amazon S3 儲存貯體中的資源。下列步驟假設您有一個名為 DAGs 資料夾`dags`。

**使用 Amazon S3 主控台上傳**

1. 在 Amazon MWAA 主控台上開啟[環境](https://console.aws.amazon.com/mwaa/home#/environments)頁面。

1. 選擇環境。

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

1. 選擇 `dags` 資料夾。

1. 選擇**上傳**。

1. 選擇**新增檔案**。

1. 選取您 的本機副本`dag_def.py`，然後選擇**上傳**。

## 在 Amazon MWAA 主控台上指定 DAGs路徑 （第一次）
<a name="configuring-dag-folder-mwaaconsole"></a>

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

1. 在 Amazon MWAA 主控台上開啟[環境](https://console.aws.amazon.com/mwaa/home#/environments)頁面。

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

1. 選擇**編輯**。

1. 在 **Amazon S3 窗格中的 DAG 程式碼**上，選擇 **DAG 資料夾**欄位旁的**瀏覽 S3**。

1. 選取您的`dags`資料夾。

1. 選擇 **Choose (選擇)**。

1. 選擇**下一步**，**更新環境**。

## 存取 Apache Airflow UI 上的變更
<a name="configuring-dag-folder-mwaaconsole-view"></a>

您需要 AWS 帳戶 in AWS Identity and Access Management (IAM) 存取 Apache Airflow UI 的[Apache Airflow UI 存取政策：AmazonMWAAWebServerAccess](access-policies.md#web-ui-access)許可。

**存取您的 Apache Airflow UI**

1. 在 Amazon MWAA 主控台上開啟[環境](https://console.aws.amazon.com/mwaa/home#/environments)頁面。

1. 選擇環境。

1. 選擇**開啟氣流使用者介面**。

## 後續步驟？
<a name="configuring-dag-folder-next-up"></a>

在 GitHub 上使用 [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)，在本機測試您的 DAGs、自訂外掛程式和 Python 相依性。