本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS IoT 任務 API 操作
AWS IoT 任務 API 可用於以下任一類別:
-
管理任務,例如任務的管理和控制。這是控制平面。
-
實施這些任務的裝置。這是資料平面,可讓您傳送和接收資料。
任務管理與控制會使用 HTTPS 通訊協定的 API。裝置可以使用 MQTT 或 HTTPS 通訊協定的 API。控制平面 API 適用於少量呼叫,特別是在建立與追蹤任務時使用。其通常會為單一請求開啟連線,並在接收到回應之後關閉連線。資料平面 HTTPS 和 MQTT API 允許長輪詢。這些 API 操作適用於可擴展至數百萬個裝置的大量流量。
每個 AWS IoT 任務 HTTPS API 都有一項對應的命令,可讓您從 AWS Command Line Interface (AWS CLI) 呼叫 API。命令為小寫字母,且在組成 API 名稱的單字之間有連字號。例如,您可以輸入以下內容來呼叫 CLI 上的 CreateJob
API:
aws iot create-job ...
如果操作期間發生錯誤,您會收到包含錯誤相關資訊的錯誤回應。
包含在 AWS IoT 任務服務操作期間所發生的錯誤資訊。
以下範例顯示此操作的語法:
{ "code": "ErrorCode", "message": "string", "clientToken": "string", "timestamp": timestamp, "executionState": JobExecutionState }
以下是 ErrorResponse
的說明:
code
-
ErrorCode 可設定為:
- InvalidTopic
-
請求已傳送至 AWS IoT 任務命名空間中未對應至任何 API 操作的主題。
- InvalidJson
-
請求的內容無法解譯為有效的 UTF-8 編碼 JSON。
- InvalidRequest
-
請求的內容無效。例如,當
UpdateJobExecution
請求包含了無效的狀態詳細資訊,此代碼就會傳回。訊息包含錯誤的詳細資訊。 - InvalidStateTransition
-
已嘗試更新,將任務執行變更為由於任務執行目前狀態而無效的狀態。例如,嘗試將狀態為 SUCCEEDED 的請求變更為狀態 IN_PROGRESS。在此情況下,錯誤訊息的本文也會包含
executionState
欄位。 - ResourceNotFound
-
請求主題指定的
JobExecution
不存在。 - VersionMismatch
-
請求所指定的預期版本不符合 AWS IoT 任務服務中的任務執行版本。在此情況下,錯誤訊息的本文也會包含
executionState
欄位。 - InternalError
-
處理請求時發生內部錯誤。
- RequestThrottled
-
請求受到調節。
- TerminalStateReached
-
在處於結束狀態的任務上執行描述任務的命令時發生。
message
-
錯誤訊息字串。
clientToken
-
用於將請求與回覆建立關聯的任意字串。
timestamp
-
Epoch 時間,以秒為單位。
executionState
-
JobExecutionState
物件。只有當code
欄位有InvalidStateTransition
或VersionMismatch
值,此欄位才會包含在內。在這些情況下,就不必另外執行DescribeJobExecution
請求以獲得任務執行狀態資料。