

# 添加触发器
<a name="console-triggers"></a>

您可以使用 AWS Glue 控制台、 AWS Command Line Interface (AWS CLI) 或 AWS Glue API 添加触发器。

**添加触发器（控制台）**

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

1. 在导航窗格中，于 **ETL** 下，选择 **Triggers (触发器)**。选择 **Add trigger (添加触发器)**。

1. 提供以下属性：  
**名称**  
赋予您的触发器一个唯一的名称。  
**触发器类型**  
指定下列项之一：  
   + **Schedule (计划)**：触发器按特定的频率和时间触发。
   + **Job events (作业事件)**：条件触发器。当列表中的任何或所有作业进入其指定状态时，触发器就会触发。要让触发器触发，受监控的作业必须由触发器启动。对于您选择的任何作业，您只能监控一个作业事件（完成状态）。
   + **On-demand (按需)**：触发器会在激活时触发。

1. 完成触发器向导。在 **Review (审查)** 页面上，您可以选择 **Enable trigger on creation (在创建时启用触发器)**，立即激活 **Schedule (计划)** 和 **Job events (任务事件)**（条件）触发。

**添加触发器 (AWS CLI)**
+ 输入类似以下的命令。

  ```
  aws glue create-trigger --name MyTrigger --type SCHEDULED --schedule  "cron(0 12 * * ? *)" --actions CrawlerName=MyCrawler --start-on-creation  
  ```

  此命令会创建一个名为 `MyTrigger` 的计划触发器 ，该触发器每天在 UTC 时间中午 12:00 运行，并启动一个名为 `MyCrawler` 的爬网程序。该触发器在创建时处于激活状态。

有关更多信息，请参阅 [AWS Glue 触发器](about-triggers.md)。

# 用于作业和爬网程序的基于时间的计划
<a name="monitor-data-warehouse-schedule"></a>

您可以在 AWS Glue 中定义用于作业和爬网程序的基于时间的计划。这些计划的定义使用类似于 Unix 的 [cron](http://en.wikipedia.org/wiki/Cron) 语法。您可以按 [协调世界时 (UTC)](http://en.wikipedia.org/wiki/Coordinated_Universal_Time) 指定时间，计划的最小精度是 5 分钟。

要了解有关配置任务和爬网程序以使用计划运行的详细信息，请参阅[使用触发器启动作业和爬网程序](trigger-job.md)。

## Cron 表达式
<a name="CronExpressions"></a>

Cron 表达式有六个必填字段，之间以空格分隔。

**语法**

```
cron(Minutes Hours Day-of-month Month Day-of-week Year)
```


| **字段** | **值** | **通配符** | 
| --- | --- | --- | 
|  分钟  |  0-59  |  , - \$1 /  | 
|  小时  |  0-23  |  , - \$1 /  | 
|  Day-of-month  |  1-31  |  , - \$1 ? / L W  | 
|  Month  |  1-12 或 JAN-DEC  |  , - \$1 /  | 
|  星期几  |  1-7 或 SUN-SAT  |  , - \$1 ? / L  | 
|  Year  |  1970-2199  |  , - \$1 /  | 

**通配符**
+ **,**（逗号）通配符包含其他值。在 `Month` 字段中，`JAN,FEB,MAR` 将包含 January、February 和 March。
+ **-**（破折号）通配符用于指定范围。在 `Day` 字段中，1-15 将包含指定月份的 1-15 日。
+ **\$1**（星号）通配符包含该字段中的所有值。在 `Hours` 字段中，**\$1** 将包含每个小时。
+ **/**（正斜杠）通配符用于指定增量。在 `Minutes` 字段中，您可以输入 **1/10** 以指定从一个小时的第一分钟开始的每个第十分钟（例如，第 11 分钟、第 21 分钟和第 31 分钟）。
+ **?**（问号）通配符用于指定一个或另一个。在 `Day-of-month` 字段中，您可以输入 **7**，如果您不介意 7 日是星期几，则可以在“星期几”字段中输入 **?**。
+ ** 或 ** 字段中的 `Day-of-month`L`Day-of-week` 通配符用于指定月或周的最后一天。
+ `Day-of-month` 字段中的 **W** 通配符用于指定工作日。在 `Day-of-month` 字段中，`3W` 用于指定最靠近当月的第三周的日。

**限制**
+ 您无法在同一 cron 表达式中为 `Day-of-month` 和 `Day-of-week` 字段同时指定值。如果您在其中一个字段中指定了值，则必须在另一个字段中使用 **?**（问号）。
+ 不支持产生的速率快于 5 分钟的 Cron 表达式。

**示例**  
在创建计划时，您可以使用以下示例 cron 字符串。


| 分钟 | 小时 | 日期 | 月份 | 星期几 | 年 | 含义 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0  |  10  |  \$1  |  \$1  |  ?  |  \$1  |  每天上午的 10:00 (UTC) 运行  | 
|  15  |  12  |  \$1  |  \$1  |  ?  |  \$1  |  每天在下午 12:15 (UTC) 运行  | 
|  0  |  18  |  ?  |  \$1  |  MON-FRI  |  \$1  |  每星期一到星期五的下午 6:00 (UTC) 运行  | 
|  0  |  8  |  1  |  \$1  |  ?  |  \$1  |  每月第 1 天上午 8:00 (UTC) 运行  | 
|  0/15  |  \$1  |  \$1  |  \$1  |  ?  |  \$1  |  每 15 分钟运行一次  | 
|  0/10  |  \$1  |  ?  |  \$1  |  MON-FRI  |  \$1  |  从星期一到星期五，每 10 分钟运行一次  | 
|  0/5  |  8-17  |  ?  |  \$1  |  MON-FRI  |  \$1  |  每星期一到星期五的上午 8:00 和下午 5:55 (UTC) 之间，每 5 分钟运行一次  | 

例如，要按计划在每天 12:15 UTC 运行，请指定：

```
cron(15 12 * * ? *)   
```