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

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

Jobs とジョブ実行の状態

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

ジョブの状態

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

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

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

  • SCHEDULED

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

  • IN_PROGRESS

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

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

    注記

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

  • COMPLETED

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

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

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

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

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

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

  • CANCELED

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

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

  • DELETION_IN_PROGRESS

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

Job 実行の状態

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

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

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

  • QUEUED

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

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

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

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

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

    IoT デバイスがリザーブド ジョブのトピック $notify および にサブスクライブし$notify-next、デバイスが StartNextPendingJobExecution API または ステータスの UpdateJobExecution API を呼び出す場合IN_PROGRESS、AWS IoTジョブはジョブ実行ステータスを に設定しますIN_PROGRESS

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

    注記

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

  • 成功

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

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

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

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

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

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

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

  • 削除済み

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

  • CANCELED

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