翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Jobs とジョブ実行の状態
以下のセクションでは、 AWS IoT ジョブのライフサイクルとジョブ実行のライフサイクルについて説明します。
ジョブの状態
次の図は、 AWS IoT ジョブのさまざまな状態を示しています。
ジョブを使用して作成する AWS IoT ジョブは、次のいずれかの状態になります。
-
SCHEDULED
コンソール、、APIまたは CreateJob を使用した AWS IoT 最初のジョブまたはジョブテンプレートの作成中にCreateJobTemplateAPI、 AWS IoT コンソールまたは
SchedulingConfig
CreateJobAPIまたは CreateJobTemplate でオプションのスケジューリング設定を選択できますAPI。特定のstartTime
、endTime
、endBehavoir
を含むスケジューリングされたジョブを開始すると、ジョブのステータスは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
が指定されていない場合、連続ジョブは引き続きジョブドキュメントのロールアウトを実行します。
-
スナップショットジョブの場合、すべてのジョブ実行が
SUCCEEDED
、FAILED
、TIMED_OUT
、REMOVED
、または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 実行の状態 | デバイスによって開始されましたか? | 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
IoT デバイスが予約済み ジョブのトピック
$notify
と をサブスクライブし$notify-next
、デバイスがStartNextPendingJobExecution
APIまたは ステータスUpdateJobExecution
APIが のいずれかを呼び出す場合IN_PROGRESS
、 AWS IoT ジョブはジョブ実行ステータスを に設定しますIN_PROGRESS
。ステータスが の場合、 を複数回呼び出す
UpdateJobExecution
APIことができますIN_PROGRESS
。statusDetails
オブジェクトを使用して、実行ステップに関する追加の詳細を指定できます。注記
デバイスごとに複数のジョブを作成する場合、 AWS IoT ジョブとMQTTプロトコルは配信順序を保証しません。
-
SUCCEEDED
デバイスがリモートオペレーションを正常に完了すると、デバイスは ステータス
UpdateJobExecution
APIの を呼び出しSUCCEEDED
て、ジョブの実行が成功したことを示す必要があります。 AWS IoT ジョブはその後、ジョブの実行ステータスを として更新して返しますSUCCEEDED
。 -
FAILED
デバイスがリモートオペレーションを完了できなかった場合、デバイスは のステータス
UpdateJobExecution
APIで を呼び出しFailed
て、ジョブの実行が失敗したことを示す必要があります。 AWS IoT ジョブはその後、ジョブの実行ステータスを として更新して返しますFailed
。このジョブの実行は、ジョブ実行再試行設定 を使用してデバイスに対して再試行することができます。 -
TIMED_OUT
ステータスが の場合
IN_PROGRESS
、または進行中のタイマーのタイムアウト期間内にリモートオペレーションを完了できない場合、 AWS IoT ジョブはジョブ実行ステータスを に設定しますTIMED_OUT
。また、進行中のジョブの各ジョブステップにステップタイマーがあり、ジョブの実行にのみ適用されます。進行中のタイマー時間は ジョブ実行タイムアウトの設定 のinProgressTimeoutInMinutes
プロパティを使用して指定されます。このジョブの実行は、ジョブ実行再試行設定 を使用してデバイスに対して再試行することができます。 -
REJECTED
デバイスが無効なリクエストまたは互換性のないリクエストを受信すると、デバイスは ステータス
UpdateJobExecution
APIが の を呼び出す必要がありますREJECTED
。 AWS IoT その後、 はジョブ実行ステータスを として更新して返しますREJECTED
。 -
REMOVED
デバイスが、モノの動的モノグループからデタッチされた場合など、ジョブ実行の有効なターゲットでなくなった場合、 AWS IoT Jobs は、ジョブの実行ステータスを
REMOVED
に設定します。モノをターゲットグループに再アタッチし、デバイスのジョブ実行を再開できます。 -
CANCELED
コンソールまたは
CancelJob
またはCancelJobExecution
を使用してジョブをキャンセルしたり、ジョブ実行をキャンセルしたりAPIする場合、または を使用して指定された中止基準が満たされた場合、 AWS IoT Jobs ジョブの中止設定はジョブをキャンセルし、ジョブ実行ステータスを に設定しますCANCELED
。