本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
任務和任務執行狀態
下列各節說明工作的生命週期以及 AWS IoT 工作執行的生命週期。
任務狀態
下圖顯示工 AWS IoT 作的不同狀態。
您使用「工作」建立的 AWS IoT 工作可能處於下列其中一種狀態:
-
已排程
在使用 AWS IoT 主控台、CreateJobAPI 或 API 建立初始作業或CreateJobTemplate工作範本期間,您可以在 AWS IoT 主控台或 CreateJobAPI 或 CreateJobTemplateAPI 中選取選用的排程設定。
SchedulingConfig
當您啟動包含特定startTime
、endTime
和endBehavoir
的排程任務時,任務狀態會更新為SCHEDULED
。當任務達到您選取的startTime
或下一個維護時段的startTime
(如果您選取了在維護時段推展任務),狀態會從SCHEDULED
更新為IN_PROGRESS
,並開始將任務文件推展至目標群組中的所有裝置。 -
IN_PROGRESS
使用 AWS IoT 主控台或 CreateJobAPI 建立工作時,工作狀態會更新為
IN_PROGRESS
。在建立任務期間, AWS IoT 任務開始將任務執行推展到目標群組中的裝置。在所有任務執行推展完畢之後, AWS IoT 任務會等待裝置完成遠端動作。如需套用至進行中任務的並行和限制的相關資訊,請參閱 任務限制。
注意
當
IN_PROGRESS
任務到達目前維護時段結束時,任務文件的展開就會停止。任務將更新為SCHEDULED
,直到下一個維護時段的startTime
。 -
COMPLETED (已完成)
會以下列其中一種方式處理連續任務:
-
對於未選取選用排程組態的連續任務,它會始終在進行中,持續為新增至目標群組的任何新裝置執行。它永遠不會達到
COMPLETED
的狀態。 -
對於具有選用排程組態的連續任務,則會發生下列情況:
-
如果有提供
endTime
,則連續任務將在超過endTime
且所有任務執行都達到結束狀態時進入COMPLETED
狀態。 -
如果選用排程組態中未提供
endTime
,則連續任務會繼續執行任務文件推展。
-
對於快照任務,任務狀態會在所有任務執行進入終端狀態 (例如
SUCCEEDED
、FAILED
、TIMED_OUT
、REMOVED
或CANCELED
) 時變更為COMPLETED
。 -
-
CANCELED
當您使用 AWS IoT 主控台、CancelJobAPI 或取消工作時,工作狀態會變更為
CANCELED
。 任務中止組態在工作取消期間, AWS IoT 工作會開始取消先前建立的工作執行。如需套用至取消中任務的並行和限制的相關資訊,請參閱 任務限制。
-
DELETION_IN_PROGRESS
使用 AWS IoT 主控台或 DeleteJobAPI 刪除工作時,工作狀態會變更為
DELETION_IN_PROGRESS
。在工作刪除期間, AWS IoT 工作會開始刪除先前建立的工作執行項目。刪除所有工作執行後,工作會從您的 AWS 帳戶中消失。
任務執行狀態
下表顯示 AWS IoT 工作執行的不同狀態,以及狀態變更是由設備還是由 AWS IoT 工作啟動。
任務執行狀態與來源 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
任務執行狀態 | 由裝置起始? | 由 AWS IoT 工作啟動? | 結束狀態? | 可否重試? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
QUEUED |
否 | 是 | 否 | 不適用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IN_PROGRESS |
是 | 否 | 否 | 不適用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SUCCEEDED |
是 | 否 | 是 | 不適用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FAILED |
是 | 否 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TIMED_OUT |
否 | 是 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REJECTED |
是 | 否 | 是 | 否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REMOVED |
否 | 是 | 是 | 否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CANCELED |
否 | 是 | 是 | 否 |
以下段落說明當您使用「工作」建立工作時,所推出的 AWS IoT 工作執行狀態的詳細資訊。
-
QUEUED
當 AWS IoT 工作針對目標裝置推出工作執行時,工作執行狀態會設定為
QUEUED
。任務執行會維持在QUEUED
狀態,直到:-
您的裝置接收任務執行,並叫用任務 API 操作,將狀態報告為
IN_PROGRESS
。 -
您取消任務或任務執行,或在符合您指定的中止條件時,狀態會變更為
CANCELED
。 -
您的裝置已從目標群組中移除,且狀態變更為
REMOVED
。
-
-
IN_PROGRESS
如果您的 IoT 裝置訂閱了保留的
$notify-next
,任務主題$notify
且您的裝置呼叫狀態為的StartNextPendingJobExecution
API 或UpdateJobExecution
APIIN_PROGRESS
,則作業會將 AWS IoT 作業執行狀態設定為。IN_PROGRESS
此
UpdateJobExecution
API 可多次叫用,且狀態為IN_PROGRESS
。您可以使用statusDetails
物件來指定關於執行步驟的其他詳細資訊。注意
如果您為每個設備創建多個任 AWS IoT 務,則作業和 MQTT 協議不保證交付順序。
-
SUCCEEDED (成功)
當您的裝置成功完成遠端作業時,裝置必須叫用狀態
SUCCEEDED
為的UpdateJobExecution
API,以指出工作執行成功。 AWS IoT 工作接著會更新,並將工作執行狀態傳回為SUCCEEDED
。 -
失敗
當您的設備無法完成遠端操作時,設備必須調用狀態
Failed
為的UpdateJobExecution
API,以指示作業執行失敗。 AWS IoT 工作接著會更新,並將工作執行狀態傳回為Failed
。您可以使用 任務執行重試組態 未裝置重試此任務執行。 -
TIMED_OUT
當裝置無法完成作業步驟時,狀態為
IN_PROGRESS
,或在進行中計時器的逾時持續時間內無法完成遠端作業時,J AWS IoT obs 會將TIMED_OUT
作業執行狀態設定為。您也可以為進行中任務的每個任務步驟設定一個步驟計時器,且僅適用於任務執行。此進行中計時器期間使用 任務執行逾時組態 的inProgressTimeoutInMinutes
屬性指定。您可以使用 任務執行重試組態 未裝置重試此任務執行。 -
REJECTED
當您的裝置收到無效或不相容的要求時,裝置必須叫用狀態為的
UpdateJobExecution
APIREJECTED
。 AWS IoT 工作接著會更新,並將工作執行狀態傳回為REJECTED
。 -
REMOVED
當您的裝置不再是任務執行的有效目標時,例如當它與動態物件群組分離時, AWS IoT 任務會將任務執行狀態設置為
REMOVED
。您可以將物件重新附加到目標群組,然後重新啟動裝置的任務執行。 -
CANCELED
當您使用主控台或或
CancelJobExecution
API 取消工作執行,或符合使用指定的中止準則時, AWS IoT 工作會取 任務中止組態消工作並將工作執行狀態設定為。CancelJob
CANCELED