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

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

Jobs とジョブ実行の状態

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

ジョブの状態

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

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

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

  • SCHEDULED

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

  • IN_PROGRESS

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

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

    注記

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

  • COMPLETED

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

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

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

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

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

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

  • CANCELED

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

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

  • DELETION_IN_PROGRESS

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

Job 実行の状態

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

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、デバイスが StartNextPendingJobExecutionAPIまたは ステータスUpdateJobExecutionAPIが のいずれかを呼び出す場合IN_PROGRESS、 AWS IoT ジョブはジョブ実行ステータスを に設定しますIN_PROGRESS

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

    注記

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

  • SUCCEEDED

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

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

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

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

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

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

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

  • REMOVED

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

  • CANCELED

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