在 Managed Airflow(第 3 代)中运行 Apache Airflow DAG
Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
本快速入门指南将向您介绍如何创建 Managed Service for Apache Airflow 环境,并在 Managed Airflow(第 3 代)中运行 Apache Airflow DAG。
如果您刚接触 Airflow,请参阅 Apache Airflow 文档中的 Airflow 概念教程,详细了解 Airflow 概念、对象及其 用法。
如果您想改用 Google Cloud CLI,请参阅 在 Managed Service for Apache Airflow 中运行 Apache Airflow DAG (Google Cloud CLI)。
如果您想使用 Terraform 创建环境,请参阅 创建环境 (Terraform)。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
启用 Managed Airflow API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。 -
如需获得完成本快速入门所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
分配 IAM 角色和权限:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin) -
为 Managed Airflow 环境创建服务帐号:
Create Service Accounts (
roles/iam.serviceAccountCreator) -
查看、创建和管理 Managed Airflow 环境:
- Environment and Storage Object Administrator (
roles/composer.environmentAndStorageObjectAdmin) - Service Account User (
roles/iam.serviceAccountUser)
- Environment and Storage Object Administrator (
-
查看日志:
Logs Viewer (
roles/logging.viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
分配 IAM 角色和权限:
Project IAM Admin (
创建环境的服务帐号
创建环境时,您需要指定服务帐号。此服务 账号称为环境的服务账号。您的环境使用此服务帐号执行大多数操作。
您的环境的服务帐号不是用户账号。服务帐号是由应用或虚拟机 (VM) 实例(而非个人)使用的特殊账号。
如需为您的环境创建服务帐号,请执行以下操作:
按照 Identity and Access Management 文档中的说明向其授予角色。所需的角色是 Composer Worker (
composer.worker)。
创建环境
在 Google Cloud 控制台中,前往创建环境页面。
在名称 字段中,输入
example-environment。在位置 下拉列表中,为 Managed Airflow 环境选择一个区域。本指南使用
us-central1区域。对于其他环境配置选项,请使用提供的默认值。
点击创建 ,然后等待环境创建完成。
完成后,相应环境名称旁边会显示一个绿色对勾标记。
创建 DAG 文件
Airflow DAG 是您要安排和运行的有序任务的集合 。DAG 在标准 Python 文件中定义。
本指南使用 quickstart.py 文件中定义的示例 Airflow DAG。
此文件中的 Python 代码会执行以下操作:
- 创建一个 DAG
composer_sample_dag。此 DAG 每天运行一次。 - 执行一项任务
print_dag_run_conf。该任务使用 bash 运算符输出 DAG 运行的配置。
在本地机器上保存 quickstart.py 文件的副本:
将 DAG 文件上传到环境的存储桶
每个 Managed Airflow 环境都有一个关联的 Cloud Storage 存储桶。Managed Airflow 中的 Airflow 仅会调度此存储桶的 /dags 文件夹中的 DAG。
如需安排 DAG,请将 quickstart.py 从本地机器上传到您的环境的 /dags 文件夹:
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境的名称
example-environment。环境详情 页面会打开。点击打开 DAG 文件夹 。存储分区详情 页面会打开。
点击上传文件 ,然后选择
quickstart.py的副本。如需上传该文件,请点击打开 。
查看 DAG
上传 DAG 文件后,Airflow 会执行以下操作:
- 解析您上传的 DAG 文件。DAG 可能需要几分钟才能供 Airflow 使用。
- 将 DAG 添加到可用 DAG 列表中。
- 根据您在 DAG 文件中提供的时间表执行 DAG。
在 DAG 界面中查看 DAG,以检查 DAG 是否已处理完毕且无错误,以及是否可在 Airflow 中使用。DAG 界面是 Managed Airflow 界面,用于在 控制台中查看 Google Cloud DAG 信息。Managed Airflow 还提供 对 Airflow 界面的访问权限,该界面是原生 Airflow 网页 界面。
等待大约 5 分钟,以便 Airflow 处理您之前上传的 DAG 文件,并完成第一次 DAG 运行(稍后会对此进行说明)。
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境的名称
example-environment。环境详情 页面会打开。前往 DAG 标签页。
检查 DAG 列表中是否存在
composer_quickstartDAG。
图 1.DAG 列表显示了 composer_quickstart DAG(点击可放大)
查看 DAG 运行详情
DAG 的单次执行称为“DAG 运行” 。Airflow 会立即为示例 DAG 执行 DAG 运行,因为 DAG 文件中的开始日期设置为昨天。这样,Airflow 就会赶上指定 DAG 的时间表。
示例 DAG 包含一项任务 print_dag_run_conf,该任务在控制台中运行 echo 命令。此命令会输出有关 DAG 的元信息(DAG 运行的数字标识符)。
在 DAG 标签页上,点击
composer_quickstart。系统会打开 DAG 的运行 标签页。在 DAG 运行列表中,点击第一个条目。
图 2.composer_quickstart DAG 的 DAG 运行列表(点击可放大) 系统会显示 DAG 运行详情,详细说明示例 DAG 的各项任务的相关信息。
图 3.在 DAG 运行中执行的任务列表(点击可放大) DAG 运行的日志 部分列出了 DAG 运行中所有任务的日志。您可以在日志中看到
echo命令的输出。
图 4.print_dag_run_conf 任务的日志 (点击可放大)
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
删除本教程中使用的资源 :
删除 Managed Airflow 环境:
在 Google Cloud 控制台中,前往环境页面。
选择
example-environment,并点击删除。等待环境删除完成。
删除环境的存储桶。删除 Managed Airflow 环境不会删除其存储桶。
在 Google Cloud 控制台中,前往 存储 > 浏览器 页面。
选择环境的存储桶,然后点击删除。例如,此存储桶可以命名为
us-central1-example-environ-c1616fe8-bucket。
后续步骤