AWS IoT ジョブ API オペレーション - AWS IoT Core

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

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 リクエストを実行する必要はありません。

ジョブの API オペレーションとデータ型は以下のとおりです。