翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT ジョブ API オペレーション
AWS IoT ジョブ API は、次のいずれかのカテゴリで使用できます。
-
ジョブの管理や制御などの管理タスク。これは、コントロールプレーンです。
-
それらのジョブを実行するデバイス。これは、データプレーンです。これにより、データの送受信が可能になります。
ジョブの管理と制御には HTTPS プロトコル API を使用します。デバイスは、MQTT または HTTPS プロトコル API を使用できます。コントロールプレーンは、ジョブの作成と追跡の際に一般的な少数の呼び出しに対応するように設計されています。これは、通常、単一のリクエストの接続を開き、レスポンスが受信された後で接続を閉じます。データプレーンの HTTPS および MQTT API により、長時間のポーリングが可能になります。これらの API オペレーションは、数百万のデバイスに拡張できる大量のトラフィック用に設計されています。
各 AWS IoT ジョブの HTTPS API には対応するコマンドがあり、AWS Command Line Interface から API を呼び出すことができます (AWS CLI)。コマンドは小文字で、API の名前を構成する単語の間にハイフンが付きます。たとえば、CLI で CreateJob
API を呼び出すには、次のように入力します。
aws iot create-job ...
オペレーション中にエラーが発生した場合は、エラーに関する情報を含むエラーレスポンスが返されます。
AWS IoT ジョブサービスオペレーション中に発生したエラーに関する情報が含まれます。
以下の例は、このオペレーションの構文を示しています。
{ "code": "ErrorCode", "message": "string", "clientToken": "string", "timestamp": timestamp, "executionState": JobExecutionState }
以下は、この ErrorResponse
の説明です。
code
-
ErrorCode を以下に設定できます。
- InvalidTopic
-
リクエストが、任意の API オペレーションにマッピングされていない AWS IoT ジョブ名前空間内のトピックに送信されました。
- InvalidJson
-
リクエストの内容を有効な UTF-8 エンコード JSON として解釈できませんでした。
- InvalidRequest
-
リクエストの内容が無効です。たとえば、このコードは、
UpdateJobExecution
リクエストに無効なステータスの詳細が含まれている場合に返されます。メッセージには、エラーに関する詳細情報が含まれています。 - InvalidStateTransition
-
ジョブ実行の現在の状態が原因で、ジョブ実行を有効でない状態に変更しようとするアップデートが試行されました。たとえば、「SUCCEEDED」状態のリクエストを「IN_PROGRESS」状態に変更しようとします。この場合、エラーメッセージの本文には
executionState
フィールドも含まれます。 - ResourceNotFound
-
リクエストトピックによって指定された
JobExecution
が存在しません。 - VersionMismatch
-
リクエストで指定された想定バージョンが、AWS IoT ジョブサービスのジョブ実行バージョンと一致しません。この場合、エラーメッセージの本文には
executionState
フィールドも含まれます。 - InternalError
-
リクエストの処理中に内部エラーが発生しました。
- RequestThrottled
-
リクエストがスロットリングされました。
- TerminalStateReached
-
ターミナル状態のジョブでジョブについて説明するコマンドが実行されたときに発生します。
message
-
エラーメッセージ文字列。
clientToken
-
リクエストをその応答に関連付けるために使用される任意の文字列。
timestamp
-
エポックからの秒単位の時間。
executionState
-
JobExecutionState
オブジェクト。このフィールドは、code
フィールドの値がInvalidStateTransition
またはVersionMismatch
の場合にのみ含まれます。これにより、これらの場合、現在のジョブ実行ステータスデータを取得するための別のDescribeJobExecution
リクエストを実行する必要はありません。