本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
任務的勾點、事件和整合點
Deadline Cloud 提供數個整合點,您可以在其中在任務周圍執行自己的邏輯。整合點是任務生命週期中的位置,其中 Deadline Cloud 會對您設定的服務執行自訂程式碼或手動控制,例如準備工作者的指令碼或對任務事件做出反應的規則。您可以使用整合點來調整生產管道的截止日期雲端:安裝軟體、設定環境變數、驗證或變更任務、處理輸出或觸發下游自動化。
整合點在三個問題上有所不同:
-
程式碼的執行位置 – 在您的工作站、工作者或 AWS 雲端。
-
執行時 – 提交時、工作前後,或回應事件時。
-
設定的位置 – 在工作站設定、任務套件、佇列或機群屬性,或您自己的 AWS 帳戶中。
下圖顯示每個整合點在任務生命週期期間執行的位置。從工作站上的提交、透過工作者執行,到您 AWS 帳戶中的事件驅動型自動化的控制流程。
工作站 – 提交者掛鉤和主機組態指令碼執行一次。
工作者 – 佇列、任務和步驟環境使用工作階段範圍的進入和退出動作。任務執行會執行您的工作。相依步驟會在任務完成後執行。
AWS 帳戶 – EventBridge 事件和 CloudWatch 指標和警示會以非同步方式回應狀態變更。
下表摘要說明整合點。根據上述問題的答案選擇一個。表格後面的各節說明每個選項,並連結至詳細說明。
| 整合點 | 在 上執行 | 在 中設定 | 執行時 | 使用 進行 |
|---|---|---|---|---|
提交者掛鉤 |
工作站 |
工作站組態 (所有任務) 或任務套件 |
在提交期間,在建立任務之前 |
注入或覆寫環境變數、驗證或重寫任務套件、在提交時與生產追蹤軟體同步 |
主機組態指令碼 |
工作程序 |
機群屬性 (服務受管機群) |
每個工作者在啟動時一次,具有管理員權限 |
網路組態,安裝需要提高權限的軟體 |
佇列環境 |
工作程序 |
佇列屬性 |
當工作階段進入或退出時,佇列中的每個任務 |
專案層級組態:非管理員軟體安裝、共用環境變數、授權或協助程式設定 |
任務環境 |
工作程序 |
任務套件或任務範本 |
任務前後 |
每個任務的設定和縮減 |
步驟環境 |
工作程序 |
任務套件或步驟範本 |
步驟前後 |
每個步驟的設定和縮減 |
相依步驟 |
工作程序 |
任務套件或步驟範本 ( |
在相同任務中較早的步驟成功之後 |
在本機需要輸出檔案的轉譯後工作,例如將影格編碼為電影或產生縮圖 |
Amazon EventBridge (EventBridge) 事件 |
AWS 雲端 |
AWS 您的帳戶 (規則和目標) |
任務、步驟、任務、機群或預算狀態變更 |
生產追蹤、通知、雲端自動化、跨佇列鏈結任務 |
Amazon CloudWatch (CloudWatch) 指標和警示 |
AWS 雲端 |
AWS 您的帳戶 |
針對閾值持續進行 |
沒有事件的條件,例如授權可用性 ( |
在工作站上執行自訂邏輯
在任務到達服務之前,提交者掛鉤會在提交期間執行。您可以為每個工作站設定它們,它們適用於從該工作站提交的所有任務,或在任務套件內,它們適用於該套件。提交者掛鉤可以在提交流程中的不同點變更套件。使用它們在提交時插入環境變數、驗證提交,或與生產追蹤軟體同步。
如需詳細資訊,請參閱提交掛鉤。
在工作者上執行自訂邏輯
下列整合點會在轉譯主機上執行。它們從最寬的範圍巢狀化為最窄的範圍:
-
主機組態指令碼會在工作者啟動時執行一次,並具有管理員權限。主機組態指令碼專屬於服務受管機群 (SMFs)。在客戶受管機群 (CMF) 上,您可以改為製作自己的映像。使用主機組態指令碼進行網路設定和管理員層級軟體安裝。
-
佇列、任務和步驟環境各定義
onEnter和onExit動作。動作會在工作者的工作階段進入範圍時執行,並在工作階段結束範圍時以相反順序執行。佇列環境是專案層級組態的理想位置,適用於佇列中的每個任務,例如共用軟體、環境變數,以及授權或協助程式設定。任務和步驟環境會將範圍縮小為單一任務或步驟。 -
相依步驟會新增第二個步驟,使用
dependsOn來相依於轉譯步驟。例如,您可以轉譯和編碼電影,或轉譯和產生縮圖。步驟會保留在相同的任務中,因此輸出已經是本機的。相依步驟需要自訂提交者或手寫任務套件。Job-to-job相依性不是原生的。若要鏈結個別任務,請使用雲端中的事件,如下節所述。
注意
環境是工作階段範圍,而非每個任務。onExit 動作會在工作階段縮減時執行,而不是在每個任務之後。如果您要遷移截止日期 10 任務後回呼,請使用相依步驟,而非環境onExit動作。
如需詳細資訊,請參閱下列內容:
-
在 GitHub 網站上開啟任務描述範本結構描述
,適用於 onExitonEnter和 範圍
回應雲端中的事件
EventBridge 和 CloudWatch 可讓您對任務活動做出反應,而不會耗用陣列容量。當您的邏輯回應任務結果,而不是作為任務的一部分執行時,請使用它們。
-
截止日期 雲端會將具有來源的事件傳送至您 AWS 帳戶中
aws.deadline的預設事件匯流排。事件涵蓋任務、步驟和任務狀態變更、機群大小建議和預算閾值。您擁有規則、 AWS Lambda (Lambda) 函數和無效字母佇列 (DLQ)。將規則路由至 Lambda 函數以進行通知、資產註冊,或將任務跨佇列鏈結 (事件至 Lambda 或 () 至 )CreateJob。交付會盡最大努力,而且事件可能無法按順序送達,因此讓您的消費者具有冪等性,並設定重試和 DLQ。 -
CloudWatch 指標和警示涵蓋 EventBridge 未涵蓋的條件,最重要的是授權可用性和機群容量。授權可用性沒有事件,因此您對
LicensesInUse指標和限制計數發出警示。Fleet Size Recommendation Change事件和RecommendedFleetSize指標也會推動客戶管理的機群自動擴展。
如需詳細資訊,請參閱下列內容:
-
EventBridge 服務參考中的截止日期雲端事件
-
《Lambda 開發人員指南》中的非同步調用
-
EventBridge 使用者指南中的事件重試政策和使用無效字母佇列
選擇整合點
使用以下指引,為常見需求選擇整合點:
-
若要在提交任務之前變更任務,請使用提交者掛鉤。
-
若要在工作周圍的轉譯主機上執行邏輯,請使用主機組態指令碼或佇列、任務或步驟環境。選擇最廣泛的適用範圍,並使用佇列環境進行專案層級組態。
-
若要在任務仍位於本機時處理任務輸出,請使用相依步驟。
-
若要在不耗用陣列容量的情況下對任務結果做出反應,請使用 EventBridge 規則搭配 Lambda 函數。
-
對於沒有事件的條件,例如授權或容量限制,請使用 CloudWatch 警示。
其他資源
如需相關概念和參考資料,請參閱下列內容: