

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

# 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_tw/glue/latest/dg/about-triggers.html)

**隨需**  
在您啟用時引發的觸發。隨需觸發永遠不會進入 `ACTIVATED` 或 `DEACTIVATED` 狀態。這些觸發一律會停留在 `CREATED` 狀態。

如此一來，這些觸發便會在存在時準備就緒以供引發；您可以在建立這些觸發時設定標記來啟用排程和條件式觸發。

**重要**  
因其他任務或爬蟲程式完成而執行的任務或爬蟲程式稱為「相依」**。相依任務或爬蟲程式只有在完成的任務或爬蟲程式是由觸發啟動時，才會啟動。相依鏈中所有的任務或爬蟲程式都必須是單一 **scheduled (排程)** 或 **on-demand (隨需)** 觸發的子代。

**使用觸發傳遞任務參數**  
觸發可以將參數傳遞至啟動的任務。參數包括任務引數、逾時值、安全組態等。如果觸發啟動多個任務，參數會傳遞至每個任務。

以下是由觸發所傳遞任務引數的規則：
+ 如果鍵/值對中的鍵與預設任務引數相符，則傳遞的引數會覆寫預設引數。如果鍵與預設引數不符，則引數會做為額外引數傳遞給任務。
+ 如果鍵/值對中的鍵與不可覆寫的引數相符，則會忽略傳遞的引數。

如需詳細資訊，請參閱 AWS Glue API 中的 [觸發](aws-glue-api-jobs-trigger.md)。