AWS IoT 任務疑難排解 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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-endpointCLI命令,如下所示或 DescribeEndpoint REST API。對於端點類型,請使用 iot:Jobs

      aws iot describe-endpoint --endpoint-type iot:Jobs
  • MQTT 通訊協定

    • 使用下列describe-endpointCLI命令,如下所示或 DescribeEndpoint REST API。對於端點類型,請使用 iot:Data-ATS

      aws iot describe-endpoint --endpoint-type iot:Data-ATS

如需FIPS合規AWS IoT 任務資料平面端點的清單,請參閱依FIPS服務區分的端點

如何監控 AWS IoT 任務活動並提供指標?

使用 Amazon 監控 AWS IoT 任務活動 CloudWatch 可即時查看進行中 AWS IoT 的任務操作,並透過 AWS IoT 規則透過 CloudWatch 警示協助控制成本。您必須先設定記錄,才能監控 AWS IoT 任務活動和設定 CloudWatch警示。如需設定記錄的詳細資訊,請參閱 設定 AWS IoT 記錄

如需 Amazon CloudWatch 以及如何透過IAM使用者角色設定許可以使用 CloudWatch 資源的詳細資訊,請參閱 Amazon 的身分和存取管理 CloudWatch

如何使用 Amazon 設定 AWS IoT 任務指標和監控 CloudWatch?

若要設定 AWS IoT 記錄,請依照設定 AWS IoT 記錄 . AWS IoT logging 設定中概述的步驟,可以在 中完成 AWS Management Console AWS CLI,或 API API. AWS IoT logging 設定特定物件群組只能在 AWS CLI 或 中完成。

AWS IoT 任務指標區段包含用於監控 AWS IoT 任務活動 AWS IoT 的任務指標。它說明如何檢視 AWS Management Console 和 中的指標 AWS CLI。

此外,您可以設定 CloudWatch 警示,提醒您要密切監控的特定指標。如需警示設定的指引,請參閱使用 Amazon CloudWatch 警示。

裝置機群和單一裝置疑難排解

任務執行會QUEUED無限期維持 的狀態

當狀態為 的任務執行QUEUED不會繼續下一個邏輯狀態,例如 FAILEDIN_PROGRESSTIMED_OUT時,以下其中一個案例可能是原因:

  • CloudWatch 主控台 中的 CloudWatch 日誌中檢閱您的裝置活動。如需詳細資訊,請參閱AWS IoT 使用 CloudWatch Logs 進行監控

  • 與任務和後續任務執行相關聯的IAM角色可能沒有正確的許可,列於該IAM角色所連接政策的其中一項IAM政策陳述式中。使用 describe-jobAPI來識別連結至該任務和後續任務執行IAM的角色,並檢閱IAM政策以取得正確的許可。政策許可陳述式更新後,您應該能夠對資源執行 AssumeRoleAPI命令。

未為我的物件或物件群組建立任務執行

當任務將其狀態更新為 時IN_PROGRESS,其將開始將任務文件推展到目標群組中的所有裝置。此狀態更新會為每個目標裝置建立任務執行。如果未針對其中一個目標裝置建立任務執行,請參閱下列指引:

  • 是否為 任務的thing直接目標、任務的狀態為 IN_PROGRESS,以及任務是否並行? 如果符合所有三個條件,則任務仍在將任務執行傳送至目標群組中的所有裝置,且該特定thing裝置尚未收到其任務執行。

    • 在 AWS 管理主控台中檢閱目標群組中的任務和任務狀態,或使用 describe-jobAPI命令。

    • 使用 describe-jobAPI命令來檢閱任務的 IsConcurrent 屬性設定為 true 或 false。如需詳細資訊,請參閱任務限制

  • thing 並非由任務直接鎖定目標。

    • 如果 Thing 已新增至 ,ThingGroup且任務目標為 ThingGroup,則請確認 Thing是 的一部分ThingGroup

    • 如果任務是狀態為 IN_PROGRESS和 並行的快照任務,則任務仍在將任務執行傳送至目標群組中的所有裝置,且該特定 Thing 尚未收到其任務執行。

    • 如果任務是狀態為 IN_PROGRESS和 並行的連續任務,則任務仍在將任務執行傳送至目標群組中的所有裝置,且該特定 Thing 尚未收到其任務執行。僅適用於連續任務,您也可以Thing從 中移除 ,ThingGroup然後將 加ThingThingGroup

    • 如果任務是狀態為 IN_PROGRESS和 的快照任務,並且不並行,則 AWS IoT 任務可能不會確認 ThingThingGroup成員關係。建議您在建立 之前,在AddThingToThingGroup通話後新增幾秒鐘的等待時間Job。或者,您可以將目標選擇切換為 Continuous,讓服務重新填充延遲ThingThingGroup成員資格連接事件。

新任務因LimitedExceededException錯誤而失敗

如果您的任務建立失敗,且錯誤回應為 LimitedExceededException,請呼叫 ,list-jobsAPI並使用 檢閱所有任務isConcurrent=true,以判斷您是否處於任務並行限制。如需並行任務的其他資訊,請參閱任務限制。若要檢視您的任務並行限制和請求增加限制,請參閱AWS IoT Device Management 任務限制和配額

任務文件大小限制

任務文件大小受MQTT承載大小的限制。如果您需要大於 32 kB (千位元組)、32,000 B (位元組) 的任務文件,則請在 Amazon S3 中建立和存放任務文件,並在 URL documentSource 欄位中新增 Amazon S3 物件以供 CreateJobAPI或使用 AWS CLI。對於 AWS Management Console,在建立任務時,在 Amazon S3 URL文字方塊URL中新增 Amazon S3 物件。

裝置端MQTT訊息請求限流限制

如果您收到錯誤碼 400 ThrottlingException,裝置端MQTT訊息會因為達到同時裝置端請求的限制而失敗。如需有關限流AWS IoT Device Management 限制以及是否可以調整的詳細資訊,請參閱任務限制和配額

連線逾時錯誤

錯誤碼 400 RequestExpired表示由於高延遲或低用戶端逾時值而導致的連線失敗。

無效的API命令

確認已輸入正確的API命令,以避免錯誤訊息,指出API命令無效。如需所有 AWS IoT API命令的完整清單,請參閱 AWS IoT API 參考

服務端連線錯誤

錯誤碼 503 ServiceUnavailable表示源自伺服器端的錯誤。