本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS IoT 任務故障診斷
這是 AWS IoT 任務的疑難排解區段。
如何尋找 AWS IoT 任務端點?
- 如何找到 AWS IoT 任務控制平面端點?
-
AWS IoT 任務支援使用 HTTPS 通訊協定控制平面 API 操作。確認您已使用 HTTPS 通訊協定連線至正確的控制平面端點。
如需 AWS 區域特定端點的清單,請參閱AWS IoT 核心 - 控制平面端點。
如需符合 FIPS AWS IoT 標準任務控制平面端點的清單,請參閱依服務分類的 FIPS 端點
注意
AWS IoT 任務和 AWS IoT Core 共用相同的 AWS 區域特定端點。
- 如何尋找 AWS IoT 任務資料平面端點?
-
AWS IoT 任務支援使用 HTTPS 和 MQTT 通訊協定的資料平面 API 操作。確認您已使用 HTTPS 或 MQTT 通訊協定連線至正確的資料平面端點。
-
HTTPS 通訊協定
-
使用下列如下所示的 describe-endpoint
CLI 命令或 DescribeEndpoint
REST API。對於端點類型,請使用iot:Jobs
。aws iot describe-endpoint --endpoint-type
iot:Jobs
-
-
MQTT 通訊協定
-
使用下列如下所示的 describe-endpoint
CLI 命令或 DescribeEndpoint
REST API。對於端點類型,請使用iot:Data-ATS
。aws iot describe-endpoint --endpoint-type
iot:Data-ATS
-
如需 FIPS 相容AWS IoT 任務資料平面端點的清單,請參閱依服務分類的 FIPS 端點
-
如何監控 AWS IoT 任務活動並提供指標?
使用 Amazon CloudWatch 監控 AWS IoT 任務活動可即時查看進行中 AWS IoT 的任務操作,並透過 AWS IoT 規則使用 CloudWatch 警示協助控制成本。您必須先設定記錄,才能監控 AWS IoT 任務活動和設定 CloudWatch 警示。如需設定記錄的詳細資訊,請參閱 設定 AWS IoT 記錄。
如需 Amazon CloudWatch 以及如何透過 IAM 使用者角色設定許可以使用 CloudWatch 資源的詳細資訊,請參閱 Amazon CloudWatch 的身分和存取管理。
- 如何使用 Amazon CloudWatch 設定 AWS IoT 任務指標和監控?
-
若要設定 AWS IoT 記錄,請遵循設定 AWS IoT logging. AWS IoT logging 設定中所述的步驟,可以在 中完成 AWS Management Console AWS CLI,或 API。為特定物件群組設定的 AWS IoT 記錄,只能在 AWS CLI 或 API 中完成。
AWS IoT 任務指標區段包含用於監控任務活動 AWS IoT 的任務 AWS IoT 指標。它說明如何檢視 AWS Management Console 和 中的指標 AWS CLI。
此外,您可以設定 CloudWatch 警示,以提醒您要密切監控的特定指標。如需警示設定的指引,請參閱使用 Amazon CloudWatch 警示。
裝置機群和單一裝置故障診斷
- 任務執行會
QUEUED
無限期維持 的狀態 -
當狀態為 的任務執行
QUEUED
未繼續下一個邏輯狀態,例如IN_PROGRESS
、FAILED
或TIMED_OUT
時,以下其中一個案例可能是原因:-
在位於 CloudWatch 主控台的 CloudWatch 日誌中檢閱您的裝置活動。如需詳細資訊,請參閱AWS IoT 使用 CloudWatch Logs 監控。
-
與任務和後續任務執行相關聯的 IAM 角色,可能沒有連接到該 IAM 角色的 IAM 政策其中一個政策陳述式中列出的正確許可。使用
describe-job
API 識別連結至該任務和後續任務執行的 IAM 角色,並檢閱 IAM 政策以取得正確的許可。政策許可陳述式更新後,您應該能夠對資源執行AssumeRole
API 命令。
-
- 未為我的實物或實物群組建立任務執行
-
當任務將其狀態更新為 時
IN_PROGRESS
,它會開始將任務文件推展到目標群組中的所有裝置。此狀態更新會為每個目標裝置建立任務執行。如果未為其中一個目標裝置建立任務執行,請參閱下列指引:-
是否為任務
thing
的直接目標、任務的狀態為IN_PROGRESS
,以及任務是否同時進行? 如果符合所有三個條件,則任務仍會將任務執行傳送至目標群組中的所有裝置,且該特定thing
裝置尚未收到其任務執行。-
在 AWS 管理主控台中檢閱目標群組中的裝置,以取得任務和任務狀態,或使用
describe-job
API 命令。 -
使用
describe-job
API 命令來檢閱任務的IsConcurrent
屬性是否設為 true 或 false。如需詳細資訊,請參閱任務限制。
-
-
thing
並非由任務直接鎖定目標。-
如果
Thing
已新增至 ,ThingGroup
且任務以 為目標ThingGroup
,則請確認Thing
是 的一部分ThingGroup
。 -
如果任務是狀態為
IN_PROGRESS
和 並行的快照任務,則任務仍會將任務執行傳送至目標群組中的所有裝置,且該特定Thing
尚未收到其任務執行。 -
如果任務是狀態為
IN_PROGRESS
且並行的連續任務,則任務仍會將任務執行傳送至目標群組中的所有裝置,且該特定Thing
尚未收到其任務執行。僅針對連續任務,您也可以Thing
從 移除 ,ThingGroup
然後將Thing
新增至ThingGroup
。 -
如果任務是狀態為
IN_PROGRESS
且不是並行的快照任務,則 AWS IoT 任務可能不會確認Thing
或ThingGroup
成員關係。建議您在建立 之前,在AddThingToThingGroup
通話後新增幾秒鐘的等待時間Job
。或者,您可以將目標選擇切換為Continuous
,讓服務回填延遲Thing
和ThingGroup
成員資格連接事件。
-
-
- 新任務因
LimitedExceededException
錯誤而失敗 -
如果您的任務建立失敗,且錯誤回應為
LimitedExceededException
,則請呼叫list-jobs
API,並使用 檢閱所有任務isConcurrent=true
,以判斷您是否處於任務並行限制。如需並行任務的其他資訊,請參閱任務限制。若要檢視任務並行限制和請求提高限制,請參閱AWS IoT Device Management 任務限制和配額。
- 任務文件大小限制
-
任務文件大小受 MQTT 承載大小限制。如果您需要大於 32 kB (KB)、32,000 B (位元組) 的任務文件,請在 Amazon S3 中建立和存放任務文件,並在
CreateJob
API 或使用 的documentSource
欄位中新增 Amazon S3 物件 URL AWS CLI。對於 AWS Management Console,在建立任務時,在 Amazon S3 URL 文字方塊中新增 Amazon S3 物件 URL。-
AWS Management Console 建立任務文件:使用 建立和管理任務 AWS Management Console
-
AWS CLI 建立任務文件:使用 建立和管理任務 AWS CLI
-
CreateJob
API 文件:CreateJob
-
- 裝置端 MQTT 訊息請求調節限制
-
如果您收到錯誤碼 400
ThrottlingException
,裝置端 MQTT 訊息會因為達到同時裝置端請求的限制而失敗。如需節流AWS IoT Device Management 限制以及是否可以調整的詳細資訊,請參閱任務限制和配額。
- 連線逾時錯誤
-
錯誤碼 400
RequestExpired
表示由於高延遲或低用戶端逾時值而導致連線失敗。
- API 命令無效
-
確認已輸入正確的 API 命令,以避免顯示 API 命令無效的錯誤訊息。如需所有 API AWS IoT 命令的完整清單,請參閱 API 參考。 AWS IoT
- 服務端連線錯誤
-
錯誤碼 503
ServiceUnavailable
表示錯誤源自伺服器端。-
請參閱 AWS Health Dashboard (個人 AWS 帳戶)
以了解您個人的目前狀態 AWS 帳戶。