本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
添加或更新 DAGs
有向无环图 (DAGs) 在 Python 文件中定义,该文件将 DAG 的结构定义为代码。您可以使用 Amazon CLI 或 Amazon S3 控制台上传 DAGs 到您的环境。本主题介绍使用亚马逊 S3 存储桶中的文件夹dags
, DAGs 在 Apache Airflow 的亚马逊托管工作流程环境中添加或更新 Apache Airflow 的步骤。
Sections
先决条件
在完成本页上的步骤之前,您需要具备以下条件。
-
权限 — 您的管理员 Amazon Web Services 账户 必须已授予您访问您环境的 Amazon MWAAFull ConsoleAccess 访问控制策略的权限。此外,您的执行角色必须允许您的 Amazon MWAA 环境访问您的环境所使用的 Amazon 资源。
-
访问权限-如果您需要访问公共存储库才能直接在 Web 服务器上安装依赖项,则必须将您的环境配置为具有公共网络 Web 服务器访问权限。有关更多信息,请参阅Apache Airflow 访问模式。
-
Amazon S3 配置 — 用于存储您的 DAGs自定义插件和 Python 依赖项的 Amazon S3 存储桶
requirements.txt
必须配置为已阻止公共访问和启用版本控制。plugins.zip
工作原理
有向无环图(DAG)在单个 Python 文件中定义,该文件将 DAG 的结构定义为代码。它包含以下各项:
要在 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 用户界面中列出新 DAGs 内容所需的时间由以下因素控制。scheduler.dag_dir_list_interval
对现有内容的更改 DAGs 将在下一个 DAG 处理循环中获取。
注意
您不需要在 DAG 文件夹中包含 airflow.cfg
配置文件。您可以从Amazon MWAA 控制台覆盖默认 Apache Airflow 配置。有关更多信息,请参阅在 Amazon MWAA 上使用 Apache Airflow 配置选项。
发生了什么变化?
要查看特定 Apache Airflow 版本的更改,请参阅发行说明页面。
DAGs 使用 Amazon MWAA CLI 实用工具进行测试
-
命令行界面 (CLI) 实用工具可在本地复制 Amazon MWAA 环境。
-
CLI 在本地构建 Docker 容器镜像,类似于 Amazon MWAA 生产镜像。这使您可以运行本地 Apache Airflow 环境来开发和 DAGs测试自定义插件和依赖项,然后再部署到亚马逊 MWAA。
-
要运行 CLI,请参阅aws-mwaa-docker-images
上的 GitHub。
将 DAG 代码上传到 Amazon S3
您可以使用 Amazon S3 控制台或 Amazon Command Line Interface (Amazon CLI) 将 DAG 代码上传到您的 Amazon S3 存储桶。以下步骤假设您正在将代码 (.py
) 上传到 Amazon S3 存储桶中名为 dags
的文件夹。
使用 Amazon CLI
Amazon Command Line Interface (Amazon CLI) 是一个开源工具,可让您使用命令行 shell 中的命令与 Amazon 服务进行交互。要完成本节中的步骤,您需要以下满足以下条件:
要使用上传 Amazon 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 的UI ,允许您创建和管理 Amazon S3 桶中的资源。以下步骤假设您有一个名为 DAGs 的文件夹dags
。
要使用 Amazon S3 控制台上传,请执行以下操作
-
在 Amazon MWAA 控制台上打开环境页面
。 -
选择环境。
-
在 S3 窗格的 DAG 代码中选择 S 3 存储桶链接,在控制台中打开您的存储桶。
-
选择
dags
文件夹。 -
选择上传。
-
选择 添加文件。
-
选择
dag_def.py
的本地副本,选择上传。
在 Amazon MWAA 控制台上指定您的 DAGs 文件夹路径(第一次)
以下步骤假设您要在 Amazon S3 桶中指定名为 dags
文件夹的路径。
-
在 Amazon MWAA 控制台上打开环境页面
。 -
选择要运行的环境 DAGs。
-
选择编辑。
-
在 Amazon S3 窗格的 DAG 代码上,选择 DA G 文件夹字段旁边的 “浏览 S3”。
-
选择
dags
文件夹。 -
选择选择。
-
选择下一步、更新环境。
访问你的 Apache Airflow 用户界面上的更改
你需要你的 Amazon Web Services 账户 内部 Amazon Identity and Access Management (IAM) Apache Airflow 用户界面访问策略:亚马逊 MWAAWeb ServerAccess 权限才能访问你的 Apache Airflow 用户界面。
要访问 Apache Airflow UI,请执行以下操作
-
在 Amazon MWAA 控制台上打开环境页面
。 -
选择环境。
-
选择打开 Airflow UI。
接下来做什么?
使用aws-mwaa-docker-images