任務和任務執行狀態 - AWS IoT Core

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

任務和任務執行狀態

下列各節說明工作的生命週期以及 AWS IoT 工作執行的生命週期。

任務狀態

下圖顯示工 AWS IoT 作的不同狀態。

顯示 AWS IoT 工作不同狀態的影像。

您使用「工作」建立的 AWS IoT 工作可能處於下列其中一種狀態:

  • 已排程

    在使用 AWS IoT 主控台、CreateJobAPI 或 API 建立初始作業或CreateJobTemplate工作範本期間,您可以在 AWS IoT 主控台或 CreateJobAPI 或 CreateJobTemplateAPI 中選取選用的排程設定。SchedulingConfig當您啟動包含特定 startTimeendTimeendBehavoir 的排程任務時,任務狀態會更新為 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,則連續任務會繼續執行任務文件推展。

    對於快照任務,任務狀態會在所有任務執行進入終端狀態 (例如 SUCCEEDEDFAILEDTIMED_OUTREMOVEDCANCELED) 時變更為 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,以及當裝置不接受任務建立請求時,任務會如何顯示 REJECTED 的影像。
  • 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 API REJECTED。 AWS IoT 工作接著會更新,並將工作執行狀態傳回為REJECTED

  • REMOVED

    當您的裝置不再是任務執行的有效目標時,例如當它與動態物件群組分離時, AWS IoT 任務會將任務執行狀態設置為 REMOVED。您可以將物件重新附加到目標群組,然後重新啟動裝置的任務執行。

  • CANCELED

    當您使用主控台或或 CancelJobExecution API 取消工作執行,或符合使用指定的中止準則時, AWS IoT 工作會取 任務中止組態消工作並將工作執行狀態設定為。CancelJob CANCELED