

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

# 任務的勾點、事件和整合點
<a name="integration-points"></a>

Deadline Cloud 提供數個*整合點*，您可以在其中在任務周圍執行自己的邏輯。整合點是任務生命週期中的位置，其中 Deadline Cloud 會對您設定的服務執行自訂程式碼或手動控制，例如準備工作者的指令碼或對任務事件做出反應的規則。您可以使用整合點來調整生產管道的截止日期雲端：安裝軟體、設定環境變數、驗證或變更任務、處理輸出或觸發下游自動化。

整合點在三個問題上有所不同：
+ **程式碼的執行位置** – 在您的工作站、工作者或 AWS 雲端。
+ **執行時** – 提交時、工作前後，或回應事件時。
+ **設定的位置** – 在工作站設定、任務套件、佇列或機群屬性，或您自己的 AWS 帳戶中。

下圖顯示每個整合點在任務生命週期期間執行的位置。從工作站上的提交、透過工作者執行，到您 AWS 帳戶中的事件驅動型自動化的控制流程。
+ **工作站** – 提交者掛鉤和主機組態指令碼執行一次。
+ **工作者** – 佇列、任務和步驟環境使用工作階段範圍的進入和退出動作。任務執行會執行您的工作。相依步驟會在任務完成後執行。
+ **AWS 帳戶** – EventBridge 事件和 CloudWatch 指標和警示會以非同步方式回應狀態變更。

![跨工作站、工作者和雲端的任務生命週期整合點。](http://docs.aws.amazon.com/zh_tw/deadline-cloud/latest/developerguide/images/integration-points-diagram.png)


下表摘要說明整合點。根據上述問題的答案選擇一個。表格後面的各節說明每個選項，並連結至詳細說明。


| 整合點 | 在 上執行 | 在 中設定 | 執行時 | 使用 進行 | 
| --- | --- | --- | --- | --- | 
| 提交者掛鉤 | 工作站 | 工作站組態 （所有任務） 或任務套件 | 在提交期間，在建立任務之前 | 注入或覆寫環境變數、驗證或重寫任務套件、在提交時與生產追蹤軟體同步 | 
| 主機組態指令碼 | 工作程序 | 機群屬性 （服務受管機群） | 每個工作者在啟動時一次，具有管理員權限 | 網路組態，安裝需要提高權限的軟體 | 
| 佇列環境 | 工作程序 | 佇列屬性 | 當工作階段進入或退出時，佇列中的每個任務 | 專案層級組態：非管理員軟體安裝、共用環境變數、授權或協助程式設定 | 
| 任務環境 | 工作程序 | 任務套件或任務範本 | 任務前後 | 每個任務的設定和縮減 | 
| 步驟環境 | 工作程序 | 任務套件或步驟範本 | 步驟前後 | 每個步驟的設定和縮減 | 
| 相依步驟 | 工作程序 | 任務套件或步驟範本 (`dependsOn`) | 在相同任務中較早的步驟成功之後 | 在本機需要輸出檔案的轉譯後工作，例如將影格編碼為電影或產生縮圖 | 
| Amazon EventBridge (EventBridge) 事件 | AWS 雲端 |  AWS 您的帳戶 （規則和目標） | 任務、步驟、任務、機群或預算狀態變更 | 生產追蹤、通知、雲端自動化、跨佇列鏈結任務 | 
| Amazon CloudWatch (CloudWatch) 指標和警示 | AWS 雲端 |  AWS 您的帳戶 | 針對閾值持續進行 | 沒有事件的條件，例如授權可用性 (`LicensesInUse`) 和機群容量 | 

## 在工作站上執行自訂邏輯
<a name="integration-points-workstation"></a>

在任務到達服務之前，提交者掛鉤會在提交期間執行。您可以為每個工作站設定它們，它們適用於從該工作站提交的所有任務，或在任務套件內，它們適用於該套件。提交者掛鉤可以在提交流程中的不同點變更套件。使用它們在提交時插入環境變數、驗證提交，或與生產追蹤軟體同步。

如需詳細資訊，請參閱[提交掛鉤](submission-hooks.md)。

## 在工作者上執行自訂邏輯
<a name="integration-points-worker"></a>

下列整合點會在轉譯主機上執行。它們從最寬的範圍巢狀化為最窄的範圍：
+ **主機組態指令碼**會在工作者啟動時執行一次，並具有管理員權限。主機組態指令碼專屬於服務受管機群 (SMFs)。在客戶受管機群 (CMF) 上，您可以改為製作自己的映像。使用主機組態指令碼進行網路設定和管理員層級軟體安裝。
+ **佇列、任務和步驟環境**各定義 `onEnter`和 `onExit`動作。動作會在工作者的工作階段進入範圍時執行，並在工作階段結束範圍時以相反順序執行。佇列環境是專案層級組態的理想位置，適用於佇列中的每個任務，例如共用軟體、環境變數，以及授權或協助程式設定。任務和步驟環境會將範圍縮小為單一任務或步驟。
+ **相依步驟**會新增第二個步驟，使用 `dependsOn` 來相依於轉譯步驟。例如，您可以轉譯和編碼電影，或轉譯和產生縮圖。步驟會保留在相同的任務中，因此輸出已經是本機的。相依步驟需要自訂提交者或手寫任務套件。Job-to-job相依性不是原生的。若要鏈結個別任務，請使用雲端中的事件，如下節所述。

**注意**  
環境是工作階段範圍，而非每個任務。`onExit` 動作會在工作階段縮減時執行，而不是在每個任務之後。如果您要遷移截止日期 10 任務後回呼，請使用相依步驟，而非環境`onExit`動作。

如需詳細資訊，請參閱下列內容：
+ [執行具有管理員權限的主機組態指令碼](smf-admin.md)
+ [建立佇列環境](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html)
+ [為您的任務提供應用程式](provide-applications.md)
+ [步驟相依性](build-jobs-scheduling.md#jobs-scheduling-dependencies)
+ 在 GitHub 網站上開啟[任務描述範本結構描述](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas)，適用於 `onExit` `onEnter`和 範圍

## 回應雲端中的事件
<a name="integration-points-cloud"></a>

EventBridge 和 CloudWatch 可讓您對任務活動做出反應，而不會耗用陣列容量。當您的邏輯回應任務結果，而不是作為任務的一部分執行時，請使用它們。
+ 截止日期 雲端會將具有來源的事件傳送至您 AWS 帳戶中`aws.deadline`的預設事件匯流排。事件涵蓋任務、步驟和任務狀態變更、機群大小建議和預算閾值。您擁有規則、 AWS Lambda (Lambda) 函數和無效字母佇列 (DLQ)。將規則路由至 Lambda 函數以進行通知、資產註冊，或將任務跨佇列鏈結 （事件至 Lambda 或 () 至 )`CreateJob`。交付會盡最大努力，而且事件可能無法按順序送達，因此讓您的消費者具有冪等性，並設定重試和 DLQ。
+ CloudWatch 指標和警示涵蓋 EventBridge 未涵蓋的條件，最重要的是授權可用性和機群容量。授權可用性沒有事件，因此您對`LicensesInUse`指標和限制計數發出警示。`Fleet Size Recommendation Change` 事件和 `RecommendedFleetSize` 指標也會推動客戶管理的機群自動擴展。

如需詳細資訊，請參閱下列內容：
+ [使用 管理截止日期雲端事件 Amazon EventBridge](eventbridge-integration.md)
+ [截止日期雲端事件詳細資訊參考](events-detail-reference.md)
+ [CloudWatch 指標](cloudwatch-metrics.md)
+ [使用 Amazon EC2 Auto Scaling 群組建立機群基礎設施](create-auto-scaling.md)
+ *EventBridge 服務參考*中的[截止日期雲端事件](https://docs.aws.amazon.com/eventbridge/latest/ref/events-ref-deadline.html) 
+ 《*Lambda 開發人員指南*》中的[非同步調用](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) 
+ *EventBridge 使用者指南*中的[事件重試政策和使用無效字母佇列](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-retry-policy.html) 

## 選擇整合點
<a name="integration-points-choose"></a>

使用以下指引，為常見需求選擇整合點：
+ 若要在提交任務之前變更任務，請使用提交者掛鉤。
+ 若要在工作周圍的轉譯主機上執行邏輯，請使用主機組態指令碼或佇列、任務或步驟環境。選擇最廣泛的適用範圍，並使用佇列環境進行專案層級組態。
+ 若要在任務仍位於本機時處理任務輸出，請使用相依步驟。
+ 若要在不耗用陣列容量的情況下對任務結果做出反應，請使用 EventBridge 規則搭配 Lambda 函數。
+ 對於沒有事件的條件，例如授權或容量限制，請使用 CloudWatch 警示。

## 其他資源
<a name="integration-points-resources"></a>

如需相關概念和參考資料，請參閱下列內容：
+ [建置任務以提交至截止日期雲端](building-jobs.md)
+ [使用佇列環境設定任務](configure-jobs.md)
+ [監控AWS截止日期雲端](monitoring-overview.md)