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

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

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

AWS IoT ジョブAPIは、次のいずれかのカテゴリに使用できます。

  • ジョブの管理や制御などの管理タスク。これは、コントロールプレーンです。

  • それらのジョブを実行するデバイス。これは、データプレーンです。これにより、データの送受信が可能になります。

ジョブの管理と制御では、 HTTPSプロトコル を使用しますAPI。デバイスは、 MQTTまたは HTTPSプロトコル を使用できますAPI。コントロールプレーンAPIは、ジョブを作成および追跡するときに一般的な少量の呼び出し用に設計されています。これは、通常、単一のリクエストの接続を開き、レスポンスが受信された後で接続を閉じます。データプレーンHTTPSと はロングポーリングMQTTAPIを許可します。これらのAPIオペレーションは、数百万のデバイスにスケールできる大量のトラフィック向けに設計されています。

各 AWS IoT ジョブHTTPSAPIには、 AWS Command Line Interface () APIから を呼び出すことができる対応するコマンドがありますAWS CLI。コマンドは小文字で、 の名前を構成する単語の間にハイフンが付きますAPI。たとえば、次のように入力CLIして CreateJobAPIで を呼び出すことができます。

aws iot create-job ...

オペレーション中にエラーが発生した場合は、エラーに関する情報を含むエラーレスポンスが返されます。

AWS IoT ジョブサービスオペレーション中に発生したエラーに関する情報が含まれます。

以下の例は、このオペレーションの構文を示しています。

{ "code": "ErrorCode", "message": "string", "clientToken": "string", "timestamp": timestamp, "executionState": JobExecutionState }

以下は、この ErrorResponse の説明です。

code

ErrorCode は次のように設定できます。

InvalidTopic

リクエストは、どのAPIオペレーションにもマッピングされない AWS IoT Jobs 名前空間のトピックに送信されました。

InvalidJson

リクエストの内容を有効な UTF-8 エンコードされた として解釈できませんでしたJSON。

InvalidRequest

リクエストの内容が無効です。たとえば、このコードは、UpdateJobExecution リクエストに無効なステータスの詳細が含まれている場合に返されます。メッセージには、エラーに関する詳細情報が含まれています。

InvalidStateTransition

ジョブ実行の現在の状態が原因で、ジョブ実行を有効でない状態に変更しようとするアップデートが試行されました。例えば、 状態のリクエストを IN_ SUCCEEDED状態に変更しようとするとしますPROGRESS。この場合、エラーメッセージの本文には executionState フィールドも含まれます。

ResourceNotFound

リクエストトピックによって指定された JobExecution が存在しません。

VersionMismatch

リクエストで指定された想定バージョンが、 AWS IoT ジョブサービスのジョブ実行のバージョンと一致しません。この場合、エラーメッセージの本文には executionState フィールドも含まれます。

InternalError

リクエストの処理中に内部エラーが発生しました。

RequestThrottled

リクエストがスロットリングされました。

TerminalStateReached

ターミナル状態のジョブでジョブについて説明するコマンドが実行されたときに発生します。

message

エラーメッセージ文字列。

clientToken

リクエストをその応答に関連付けるために使用される任意の文字列。

timestamp

エポックからの秒単位の時間。

executionState

JobExecutionState オブジェクト。このフィールドは、code フィールドの値が InvalidStateTransition または VersionMismatch の場合にのみ含まれます。これにより、これらの場合、現在のジョブ実行ステータスデータを取得するための別の DescribeJobExecution リクエストを実行する必要はありません。