Jobs とジョブ実行の状態 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Jobs とジョブ実行の状態

以下のセクションでは、 AWS IoT ジョブのライフサイクルとジョブ実行のライフサイクルについて説明します。

ジョブの状態

次の図は、 AWS IoT ジョブのさまざまな状態を示しています。

AWS IoT ジョブのさまざまな状態を示す画像。

AWS IoT Jobs を使用して作成したジョブは、次のいずれかの状態になります。

  • SCHEDULED

    コンソール、CreateJobAPI、または CreateJobTemplate API を使用した AWS IoT 最初のジョブまたはジョブテンプレートの作成中に、 AWS IoT コンソールまたは SchedulingConfig CreateJob API または CreateJobTemplate API でオプションのスケジューリング設定を選択できます。特定の startTimeendTimeendBehavoir を含むスケジューリングされたジョブを開始すると、ジョブのステータスは SCHEDULED に更新されます。ジョブが選択した startTime または次のメインテナンスウィンドウの startTime に到達すると (メンテナンスウィンドウ中にジョブのロールアウトを選択した場合)、ステータスが SCHEDULED から IN_PROGRESS に更新され、ターゲットグループ内のすべてのデバイスへのジョブドキュメントのロールアウトが開始されます。

  • IN_PROGRESS

    AWS IoT コンソールまたは CreateJob API を使用してジョブを作成すると、ジョブのステータスが に更新されますIN_PROGRESS。ジョブ作成中、 AWS IoT ジョブは、ターゲットグループ内のデバイスへのジョブ実行のロールアウトを開始します。すべてのジョブ実行がロールアウトされたら、 AWS IoT Jobs は、デバイスがリモートアクションを完了するまで待機します。

    進行中のジョブに適用される同時実行性と制限については、「ジョブの制限」を参照してください。

    注記

    IN_PROGRESS ジョブが現在のメンテナンスウィンドウの終わりに達すると、ジョブドキュメントのロールアウトは停止します。ジョブは次のメンテナンスウィンドウの startTime まで SCHEDULED に更新されます。

  • COMPLETED

    連続ジョブは、以下のいずれかの方法で処理されます。

    • オプションのスケジュール設定が選択されていない連続ジョブは、常に実行され、ターゲットグループに追加された新しいデバイスに対して引き続き実行されます。ステータスが COMPLETED になることはありません。

    • オプションのスケジュール設定が選択されている連続ジョブの場合、次のことが当てはまります。

      • endTime が指定されている場合、連続ジョブは、endTime が経過し、すべてのジョブ実行が終了ステータスに達した時点で COMPLETED ステータスになります。

      • オプションのスケジュール設定で endTime が指定されていない場合、連続ジョブは引き続きジョブドキュメントのロールアウトを実行します。

    スナップショットジョブの場合、すべてのジョブ実行が SUCCEEDEDFAILEDTIMED_OUTREMOVED、または CANCELED などの終了状態になると、ジョブステータスは COMPLETED に変わります。

  • CANCELED

    AWS IoT コンソール、CancelJobAPI、または を使用してジョブをキャンセルすると ジョブの中止設定、ジョブのステータスが に変わりますCANCELED。ジョブのキャンセル中、 AWS IoT Jobs は以前に作成したジョブ実行のキャンセルを開始します。

    キャンセルされるジョブに適用される同時実行性と制限については、「ジョブの制限」を参照してください。

  • DELETION_IN_PROGRESS

    AWS IoT コンソールまたは DeleteJob API を使用してジョブを削除すると、ジョブのステータスが に変わりますDELETION_IN_PROGRESS。ジョブの削除中、 AWS IoT Jobs は以前に作成したジョブ実行の削除を開始します。すべてのジョブ実行が削除されると、ジョブは AWS アカウントから消えます。

Job 実行の状態

次の表は、 AWS IoT ジョブ実行のさまざまな状態と、状態の変更がデバイスによって開始されるか AWS IoT Jobs によって開始されるかを示しています。

Job 実行の状態とソース
Job 実行の状態 デバイスによって開始されましたか? AWS IoT ジョブによって開始されましたか? ターミナルステータス? 再試行できますか。
QUEUED いいえ はい いいえ 該当しない
IN_PROGRESS はい いいえ いいえ 該当しない
SUCCEEDED はい いいえ はい 該当しない
FAILED はい いいえ はい はい
TIMED_OUT いいえ はい はい はい
REJECTED はい いいえ はい いいえ
REMOVED いいえ はい はい いいえ
CANCELED いいえ はい はい いいえ

次のセクションでは、 AWS IoT Jobs でジョブを作成するときにロールアウトされるジョブ実行の状態について詳しく説明します。

  • QUEUED

    AWS IoT Jobs がターゲットデバイスのジョブ実行をロールアウトすると、ジョブ実行ステータスは に設定されますQUEUED。ジョブ実行は、以下を行うまで QUEUED 状態のままになります。

    • デバイスでジョブの実行を受け取り、ジョブ API オペレーションを呼び出し、ステータスを IN_PROGRESS とレポートします。

    • ジョブまたはジョブ実行をキャンセルするか、指定した中止基準を満たした場合、ステータスが CANCELED に変わります。

    • デバイスがターゲットグループから削除され、ステータスが REMOVED に変わります。

    キューに入れられたジョブ実行がどのように IN_PROGRESS に状態を変化させるか、およびデバイスがジョブ作成要求を受け入れない場合にジョブが REJECTED になるかを示す画像。
  • IN_PROGRESS

    IoT デバイスが予約済み ジョブのトピック$notifyと にサブスクライブしていて$notify-next、デバイスが ステータスの StartNextPendingJobExecution API または UpdateJobExecution API を呼び出す場合IN_PROGRESS、 AWS IoT Jobs はジョブ実行ステータスを に設定しますIN_PROGRESS

    UpdateJobExecution API は、ステータス IN_PROGRESS で複数回呼び出すことができます。statusDetails オブジェクトを使用して、実行ステップに関する追加の詳細を指定できます。

    注記

    デバイスごとに複数のジョブを作成する場合、 AWS IoT Jobs と MQTT プロトコルは配信順序を保証しません。

  • 成功

    デバイスがリモートオペレーションを正常に完了すると、デバイスは ステータスの UpdateJobExecution API を呼び出しSUCCEEDEDて、ジョブの実行が成功したことを示す必要があります。ジョブが更新され、ジョブの実行ステータスが として返 AWS IoT されますSUCCEEDED

    進行中のジョブが失敗する場合、および実行を再試行する方法を示す画像。
  • FAILED

    デバイスがリモートオペレーションを完了できなかった場合、デバイスは ステータスの UpdateJobExecution API を呼び出しFailedて、ジョブの実行が失敗したことを示す必要があります。ジョブが更新され、ジョブの実行ステータスが として返 AWS IoT されますFailed。このジョブの実行は、ジョブ実行再試行設定 を使用してデバイスに対して再試行することができます。

    進行中のジョブが失敗する場合、および実行を再試行する方法を示す画像。
  • TIMED_OUT

    ステータスが の場合にデバイスがジョブステップを完了できない場合IN_PROGRESS、または進行中のタイマーのタイムアウト時間内にリモートオペレーションを完了できない場合、 AWS IoT Jobs はジョブの実行ステータスを に設定しますTIMED_OUT。また、進行中のジョブの各ジョブステップにステップタイマーがあり、ジョブの実行にのみ適用されます。進行中のタイマー時間は ジョブ実行タイムアウトの設定inProgressTimeoutInMinutes プロパティを使用して指定されます。このジョブの実行は、ジョブ実行再試行設定 を使用してデバイスに対して再試行することができます。

    進行中のジョブの実行がタイムアウトする方法と、実行を再試行する方法を示す画像。
  • 拒否

    デバイスが無効なリクエストまたは互換性のないリクエストを受信すると、デバイスは ステータスの UpdateJobExecution API を呼び出す必要がありますREJECTED。 AWS IoT ジョブは ステータスを更新し、ジョブの実行ステータスを として返しますREJECTED

  • 削除済み

    デバイスが、モノの動的モノグループからデタッチされた場合など、ジョブ実行の有効なターゲットでなくなった場合、 AWS IoT Jobs は、ジョブの実行ステータスを REMOVED に設定します。モノをターゲットグループに再アタッチし、デバイスのジョブ実行を再開できます。

  • CANCELED

    コンソール、、または CancelJobExecution API を使用してジョブをキャンセルするか、CancelJobジョブの実行をキャンセルするか、 を使用して指定された中止基準を満たした場合、 AWS IoT Jobs ジョブの中止設定はジョブをキャンセルし、ジョブの実行ステータスを に設定しますCANCELED