翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Jobs とジョブ実行の状態
以下のセクションでは、 AWS IoT ジョブのライフサイクルとジョブ実行のライフサイクルについて説明します。
ジョブの状態
次の図は、 AWS IoT ジョブのさまざまな状態を示しています。
![AWS IoT ジョブのさまざまな状態を示す画像。](images/job-states-diagram.png)
AWS IoT Jobs を使用して作成したジョブは、次のいずれかの状態になります。
-
SCHEDULED
コンソール、CreateJobAPI、または CreateJobTemplate API を使用した AWS IoT 最初のジョブまたはジョブテンプレートの作成中に、 AWS IoT コンソールまたは
SchedulingConfig
CreateJob API または CreateJobTemplate API でオプションのスケジューリング設定を選択できます。特定のstartTime
、endTime
、endBehavoir
を含むスケジューリングされたジョブを開始すると、ジョブのステータスは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
が指定されていない場合、連続ジョブは引き続きジョブドキュメントのロールアウトを実行します。
-
スナップショットジョブの場合、すべてのジョブ実行が
SUCCEEDED
、FAILED
、TIMED_OUT
、REMOVED
、または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
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
。