

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 新增觸發條件
<a name="console-triggers"></a>

您可以使用 AWS Glue主控台、 AWS Command Line Interface (AWS CLI) 或 AWS Glue API 新增觸發條件。

**新增觸發 (主控台)**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 開啟 AWS Glue主控台。

1. 在導覽窗格的 **ETL** 下，選擇 **Triggers (觸發)**。然後請選擇 **Add trigger (新增觸發)**。

1. 提供下列屬性：  
**名稱**  
為您的觸發條件設定唯一的獨特名稱。  
**觸發條件類型**  
請指定下列其中一項：  
   + **Schedule: (排程：)** 觸發會以特定頻率和時間引發。
   + **Job events: (任務事件：)** 條件式觸發。觸發會在清單中的任何或所有任務與其指定的狀態相符時引發。若要引發觸發，監看的任務必須是由觸發所啟動。針對任何您選擇的任務，您只能監看一個任務事件 (完成狀態)。
   + **On-demand: (隨需：)** 觸發會在啟動時引發。

1. 完成觸發精靈。在 **Review (檢閱)** 頁面上，您可以啟用 **Schedule (排程)** 而 **Job events (任務事件)** (條件式) 會立即觸發，方法是選取 **Enable trigger on creation (在建立時啟用觸發)**。

**新增觸發 (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)
```


| **欄位** | **Values (數值)** | **萬用字元** | 
| --- | --- | --- | 
|  分鐘  |  0–59  |  , - \$1 /  | 
|  小時  |  0–23  |  , - \$1 /  | 
|  月中的日  |  1–31  |  , - \$1 ? / L W  | 
|  月  |  1-12 或 JAN-DEC  |  , - \$1 /  | 
|  週中的日  |  1-7 或 SUN-SAT  |  , - \$1 ? / L  | 
|  年  |  1970-2199  |  , - \$1 /  | 

**萬用字元**
+ **,** (逗號) 萬用字元包含額外的值。在 `Month` 欄位，`JAN,FEB,MAR` 包括 January (一月)、February (二月)、March (三月)。
+ **-** (破折號) 萬用字元用於指定範圍。在 `Day` 欄位中，1–15 包含指定月份的 1 至 15 號。
+ **\$1** (星號) 包含欄位中所有的值。在 `Hours` 欄位，**\$1** 包含每個小時。
+ **/** (斜線) 萬用字元用於指定增量。在 `Minutes` 欄位，您可以輸入 **1/10** 指定每 10 分鐘的間隔，從小時的第一分鐘開始 (例如第 11、第 21、第 31 分鐘)。
+ **?** (問號) 萬用字元用於表示不限定任何一個。在 `Day-of-month` 欄位，您可以輸入 **7**，如果您不在意這個月的 7 號是星期幾，就可以在 Day-of-week (週中的日) 欄位中輸入 **?**。
+ **L** 萬用字元在 `Day-of-month` 或 `Day-of-week` 欄位可指定月份或週的最後一天。
+ **W** 萬用字元在 `Day-of-month` 欄位可指定任務日。在 `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  |  在每個月第一天上午 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 * * ? *)   
```