

# AWS Glue 触发器
<a name="about-triggers"></a>

触发器在*触发*时可以启动指定的作业和爬网程序。触发器可以根据需要、基于计划或基于事件组合触发。

**注意**  
一个触发器只能激活两个爬网程序。如果要爬取多个数据存储，请为每个爬网程序使用多个源，而不是同时运行多个爬网程序。

触发器可以处于几种状态之一。触发器可以处于 `CREATED`、`ACTIVATED` 或 `DEACTIVATED` 状态。此外，还有一些过渡状态，例如 `ACTIVATING`。要暂停触发器的触发，您可以将其停用。之后您可以重新激活它。

有三种类型的触发器：

**已安排**  
基于 `cron` 的定时触发器。  
您可以为一组作业或爬网程序创建基于计划的触发器。您可以指定约束条件，例如作业或爬网程序的运行频率、它们在一周中的哪几天运行，以及具体在什么时间运行。这些约束基于 `cron`。当您为触发器设置计划时，需要考虑 cron 的功能和限制。例如，如果您选择在每月第 31 天运行您的爬网程序，请记住，有些月份没有 31 天。有关 cron 的更多信息，请参阅[用于作业和爬网程序的基于时间的计划](monitor-data-warehouse-schedule.md)。

**条件**  
在上一个作业或爬网程序或多个作业或爬网程序满足条件列表中的条件时触发的触发器。  
 创建条件触发器时，您可以指定要监控的作业列表和爬网程序列表。对于每个受监控的作业或爬网程序，您可以指定要监控的状态，例如成功、失败、超时等。当受监控的作业或爬网程序进入指定的状态时，触发器就会触发。您可以将触发器配置为在任何或所有受监控的事件发生时触发。  
例如，您可以将触发器 T1 配置为在作业 J1 和作业 J2 都成功完成时启动作业 J3，并将另一个触发器 T2 配置为在作业 J1 或作业 J2 失败时启动作业 J4。  
下表列出了触发器监控的作业和爬网程序完成状态（事件）。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/about-triggers.html)

**按需**  
在激活时触发的触发器。按需触发器永远不会进入 `ACTIVATED` 或 `DEACTIVATED` 状态。它们始终处于 `CREATED` 状态。

因此，它们一旦存在就可以立即触发。而对于计划触发器和条件触发器，则可以设置一个标记，用于在创建时激活它们。

**重要**  
作为其他作业或爬网程序完成的结果而运行的作业或爬网程序称为*依赖项*。仅当完成的作业或爬网程序由触发器启动时，才会启动依赖作业或爬网程序。依赖链中的所有作业或爬网程序都必须是单个**计划**或**按需**触发器的子代。

**通过触发器传递作业参数**  
触发器可以将参数传递给它所启动的作业。参数包括作业参数、超时值、安全配置等。如果触发器启动多个作业，则参数会传递给每个作业。

以下是触发器传递作业参数的规则：
+ 如果键值对中的键与默认作业参数匹配，则传递的参数将覆盖默认参数。如果键与默认参数不匹配，则该参数将作为附加参数传递给作业。
+ 如果键值对中的键与不可覆盖的参数匹配，则会忽略传递的参数。

有关更多信息，请参阅 AWS Glue API 中的[触发器](aws-glue-api-jobs-trigger.md)。