

# 在 AWS Glue 中手动创建和构建工作流
<a name="creating_running_workflows"></a>

您可使用 AWS Glue 控制台，一次对一个节点手动创建和构建工作流。

工作流程包含作业、爬网程序和触发器。在手动创建工作流之前，请创建工作流要包含的任务和爬网程序。最好是指定工作流的按需运行爬网程序。可以在构建工作流程时创建新的触发器，也可以将现有触发器*克隆* 到工作流程中。在克隆触发器时，与触发器关联的所有目录对象触发它的任务或爬网程序，以及它启动的任务或爬网程序将添加到工作流中。

**重要**  
将工作流中任务、爬网程序和触发器的总数限制为 100 个或更少。如果包含超过 100 个，则在尝试恢复或停止工作流运行时可能会出错。

您可以通过向工作流程图表添加触发器并为每个触发器定义监视的事件和操作来构建工作流程。首先，您可以*启动触发器*（它可以是按需触发器或计划触发器），并通过添加事件（条件）触发器来完成图表。

## 步骤 1：创建工作流程
<a name="workflow-step1"></a>

1. 登录 AWS 管理控制台，然后打开 AWS Glue 控制台，网址为：[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)。

1. 在导航窗格中，在 **ETL** 下，选择 **Workflows (工作流程)**。

1. 选择 **Add workflow (添加工作流程)**，并完成 **Add a new ETL workflow (添加新的 ETL 工作流程)** 表。

   您添加的任何可选默认运行属性都可用作工作流程中所有作业的参数。有关更多信息，请参阅 [在 AWS Glue 中获取并设置工作流运行属性](workflow-run-properties-code.md)。

1. 选择 **Add workflow (添加工作流程)**。

   新的工作流程将显示在 **Workflows (工作流程)** 页面上的列表中。

## 步骤 2：添加启动触发器
<a name="workflow-step2"></a>

1. 在 **Workflows (工作流程)** 页面上，选择新工作流程。然后，在页面底部，确保 **Graph (图表)** 选项卡处于选中状态。

1. 选择 **Add trigger (添加触发器)**，然后在 **Add trigger (添加触发器)** 对话框中，执行下列操作之一：
   + 选择 **Clone existing (克隆现有项)**，然后选择要克隆的触发器。然后，选择 **Add (添加)**。

     触发器与它监视的任务和爬网程序以及它启动的任务和爬网程序一起显示在图表中。

     如果您错误地选择了错误的触发器，请在图表上选择该触发器，然后选择 **Remove (删除)**。
   + 选择 **Add new (添加新项)**，然后完成 **Add trigger (添加触发器)** 表。

     1. 对于 **Trigger type (触发器类型)**，选择 **Schedule (计划)**、**On demand (按需)**，或者 **EventBridge event (EventBridge 事件)**。

        对于触发器类型 **Schedule (计划)**，选择一个 **Frequency (频率)** 选项。选择 **Custom (自定义)** 以输入 `cron` 表达式。

        对于触发器类型 **EventBridge event (EventBridge 事件)**，输入 **Number of events (事件数)**（批次大小），然后根据需要输入 **Time delay (时间延迟)**（批处理时间）。如果省略 **Time delay (时间延迟)**，则批处理时间默认为 15 分钟。有关更多信息，请参阅 [AWS Glue 中的工作流概述](workflows_overview.md)。

     1. 选择**添加**。

     触发器将与占位符节点（标记为 **Add node (添加节点)**）一起显示在图表中。在以下示例中，启动触发器是名为 `Month-close1` 的计划触发器。

     此时，尚未保存触发器。  
![\[具有两个矩形节点的图表：一个触发器节点，一个占位符节点。箭头从触发器节点指向占位符节点。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/graph-start-trigger.png)

1. 如果您已添加新触发器，请完成以下步骤：

   1. 请执行以下操作之一：
      + 选择占位符节点（**Add node (添加节点)**）。
      + 确保选择启动触发器，然后在图表上方的 **Action (操作)** 菜单上，选择 **Add jobs/crawlers to trigger (将作业/爬网程序添加到触发器)**。

   1. 在 **Add jobs(s) and crawler(s) to trigger (将作业和爬网程序添加到触发器)** 对话框中，选择一个或多个作业或爬网程序，然后选择 **Add (添加)**。

      将保存触发器，并且选定作业或爬网程序会与触发器中的连接器一起显示在图表中。

      如果您错误地添加了错误的作业或爬网程序，则可以选择触发器或连接器，并选择 **Remove (删除)**。

## 步骤 3：添加更多触发器
<a name="workflow-step3"></a>

通过添加更多 **Event (事件)** 类型的触发器来继续构建工作流。要放大/缩小图表画布，请使用图表右侧的图标。对于要添加的每个触发器，请完成以下步骤：

**注意**  
没有用于保存工作流的操作。添加最后一个触发器并将操作分配给触发器后，工作流将完成并保存。您可以稍后返回并添加更多节点。

1. 请执行以下操作之一：
   + 要克隆现有触发器，请确保未选择图表上的任何节点，然后在 **Action (操作)** 菜单上，选择 **Add trigger (添加触发器)**。
   + 要添加监视图表上的特定作业或爬网程序的新触发器，请选择作业或爬网程序节点，然后选择 **Add trigger (添加触发器)** 占位符节点。

     您可以在稍后的步骤中添加更多作业或爬网程序以监视此触发器。

1.  在 **Add trigger (添加触发器)** 对话框中，执行下列操作之一：
   + 选择 **Add new (添加新项)**，然后完成 **Add trigger (添加触发器)** 表。然后，选择 **Add (添加)**。

     触发器将显示在图表中。您将在后面的步骤中完成触发器。
   + 选择 **Clone existing (克隆现有项)**，然后选择要克隆的触发器。然后，选择 **Add (添加)**。

     触发器与它监视的任务和爬网程序以及它启动的任务和爬网程序一起显示在图表中。

     如果您错误地选择了错误的触发器，请在图表上选择该触发器，然后选择 **Remove (删除)**。

1. 如果您已添加新触发器，请完成以下步骤：

   1. 选择新触发器。

      如下图所示，选中触发器 `De-dupe/fix succeeded`，为要监视的（1）事件和（2）操作显示了占位符节点。  
![\[一个包含多个节点的图表，其中有两个占位符节点，分别用数字 1 和 2 标注。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/graph-dual-placeholders.png)

   1. （如果触发器已监视某个事件，并且您想添加更多作业或爬网程序以进行监视，则为可选。） 选择要监视的事件占位符节点，然后在 **Add job(s) and crawler(s) to watch (添加要监视的作业和爬网程序)** 对话框中，选择一个或多个作业或爬网程序。选择要监视的事件（SUCCEEDED、FAILED 等）并选择 **Add (添加)**。

   1. 确保已选择触发器，然后选择操作占位符节点。

   1. 在 **Add jobs(s) and crawler(s) to watch (添加要监视的作业和爬网程序)** 对话框中，选择一个或多个作业或爬网程序，然后选择 **Add (添加)**。

      选定作业和爬网程序会与触发器中的连接器一起显示在图表中。

有关工作流和蓝图的更多信息，请参阅以下主题。
+ [AWS Glue 中的工作流概述](workflows_overview.md)
+ [在 AWS Glue 中运行和监控工作流](running_monitoring_workflow.md)
+ [在 AWS Glue 中从蓝图创建工作流](creating_workflow_blueprint.md)