

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

# AWS IoT 任務故障診斷
<a name="jobs-troubleshooting"></a>

這是 AWS IoT 任務的疑難排解區段。

## 如何尋找 AWS IoT 任務端點？
<a name="jobs-endpoint-troubleshooting"></a>

**如何尋找 AWS IoT 任務控制平面端點？**  
AWS IoT 任務支援使用 HTTPS 通訊協定控制平面 API 操作。確認您已使用 HTTPS 通訊協定連線至正確的控制平面端點。  
如需 AWS 區域特定的端點清單，請參閱[AWS IoT 核心 - 控制平面端點](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core-control-plane-endpoints)。  
如需符合 FIPS **AWS IoT 規範的任務控制平面**端點清單，請參閱[依服務的 FIPS 端點](https://aws.amazon.com//compliance/fips/#FIPS_Endpoints_by_Service)  
AWS IoT 任務和 AWS IoT Core 共用相同的 AWS 區域特定端點。

**如何尋找 AWS IoT 任務資料平面端點？**  
AWS IoT 任務支援使用 HTTPS 和 MQTT 通訊協定的資料平面 API 操作。確認您已使用 HTTPS 或 MQTT 通訊協定連線至正確的資料平面端點。  
+ HTTPS 通訊協定
  + 使用下列 CLI [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-endpoint.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-endpoint.html) 命令，如下所示或 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html) REST API。對於端點類型，請使用 `iot:Jobs`。

    ```
    aws iot describe-endpoint --endpoint-type iot:Jobs
    ```
+ MQTT 通訊協定
  + 使用下列 CLI [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-endpoint.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-endpoint.html) 命令，如下所示或 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html) REST API。對於端點類型，請使用 `iot:Data-ATS`。

    ```
    aws iot describe-endpoint --endpoint-type iot:Data-ATS
    ```
如需 FIPS 相容**AWS IoT 任務資料平面**端點的清單，請參閱[依服務的 FIPS 端點](https://aws.amazon.com//compliance/fips/#FIPS_Endpoints_by_Service)

## 如何監控 AWS IoT 任務活動並提供指標？
<a name="jobs-logs-troubleshooting"></a>

使用 Amazon CloudWatch 監控 AWS IoT 任務活動可提供持續 AWS IoT 任務操作的即時可見性，並透過 AWS IoT 規則使用 CloudWatch 警示協助控制成本。您必須先設定記錄，才能監控 AWS IoT 任務活動和設定 CloudWatch 警示。如需設定記錄的詳細資訊，請參閱 [設定 AWS IoT 記錄](configure-logging.md)。

如需 Amazon CloudWatch 以及如何透過 IAM 使用者角色設定許可以使用 CloudWatch 資源的詳細資訊，請參閱 [Amazon CloudWatch 的身分和存取管理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)。

**如何使用 Amazon CloudWatch 設定 AWS IoT 任務指標和監控？**  
若要設定 AWS IoT 記錄，請遵循[設定 AWS IoT logging](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html). AWS IoT logging 設定中概述的步驟，可以在 中完成 AWS 管理主控台 AWS CLI，或 API。針對特定物件群組設定的 AWS IoT 記錄，只能在 AWS CLI 或 API 中完成。  
[AWS IoT 任務指標](https://docs.aws.amazon.com/iot/latest/developerguide/metrics_dimensions.html#jobs-metrics)區段包含用於監控任務活動 AWS IoT 的任務 AWS IoT 指標。它說明如何檢視 AWS 管理主控台 和 中的指標 AWS CLI。  
此外，您可以設定 CloudWatch 警示，提醒您要密切監控的特定指標。如需警示設定的指引，請參閱[使用 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

## 裝置機群和單一裝置故障診斷
<a name="jobs-troubleshooting-for-fleethub"></a>

**任務執行會`QUEUED`無限期維持 的狀態**  
當狀態為 的任務執行`QUEUED`未繼續進行下一個邏輯狀態，例如 `IN_PROGRESS`、 `FAILED`或 `TIMED_OUT`時，以下其中一個案例可能是原因：  
+ 在位於 CloudWatch [主控台的 CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)日誌中檢閱您的裝置活動。如需詳細資訊，請參閱[AWS IoT 使用 CloudWatch Logs 監控](https://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html)。
+ 與任務和後續任務執行相關聯的 IAM 角色可能沒有連接到該 IAM 角色之 IAM 政策的其中一個政策陳述式中列出的正確許可。使用 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html) API 識別連結至該任務和後續任務執行的 IAM 角色，並檢閱 IAM 政策以取得正確的許可。政策許可陳述式更新後，您應該能夠對資源執行 [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API 命令。

**未為我的物件或物件群組建立任務執行**  
當任務將其狀態更新為 時`IN_PROGRESS`，它會開始將任務文件推展到目標群組中的所有裝置。此狀態更新會為每個目標裝置建立任務執行。如果未為其中一個目標裝置建立任務執行，請參閱下列指引：  
+ 是否`thing`*直接*以任務為目標、任務的狀態為 `IN_PROGRESS`，且任務是並行的？ 如果符合所有三個條件，則任務仍會將任務執行傳送至目標群組中的所有裝置，且該特定 `thing` 尚未收到其任務執行。
  + 在 AWS 管理主控台中檢閱目標群組中的裝置以取得任務和任務狀態，或使用 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html) API 命令。
  + 使用 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html) API 命令來檢閱任務是否將 `IsConcurrent` 屬性設定為 true 或 false。如需詳細資訊，請參閱[任務限制](https://docs.aws.amazon.com/iot/latest/developerguide/job-limits.html)。
+ `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`，以判斷您是否處於任務並行限制。如需並行[任務的其他資訊，請參閱任務限制](https://docs.aws.amazon.com/iot/latest/developerguide/job-limits.html)。若要檢視任務並行限制和請求提高限制，請參閱[AWS IoT Device Management 任務限制和配額](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#job-limits)。

**任務文件大小限制**  
任務文件大小受限於 MQTT 承載大小。如果您需要大於 32 kB (KB)、32，000 B （位元組） 的任務文件，請在 Amazon S3 中建立和存放任務文件，並在 `CreateJob` API 或使用 的 `documentSource` 欄位中新增 Amazon S3 物件 URL AWS CLI。對於 AWS 管理主控台，在建立任務時，在 Amazon S3 URL 文字方塊中新增 Amazon S3 物件 URL。  
+ AWS 管理主控台 建立任務文件：[使用 建立和管理任務 AWS 管理主控台](https://docs.aws.amazon.com/iot/latest/developerguide/manage-job-console.html)
+ AWS CLI 建立任務文件：[使用 建立和管理任務 AWS CLI](https://docs.aws.amazon.com/iot/latest/developerguide/manage-job-cli.html)
+ `CreateJob` API 文件：[CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)

**裝置端 MQTT 訊息請求調節限制**  
如果您收到錯誤代碼 400 `ThrottlingException`，裝置端 MQTT 訊息會因為達到同時裝置端請求的限制而失敗。如需節流[AWS IoT Device Management 限制以及是否可以調整的詳細資訊，請參閱任務限制和配額](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#job-limits)。

**連線逾時錯誤**  
錯誤代碼 400 `RequestExpired`表示由於高延遲或低用戶端逾時值而導致連線失敗。  
+ 如需[測試用戶端和伺服器端之間連線的資訊，請參閱測試與裝置資料端點的連線](https://docs.aws.amazon.com/iot/latest/developerguide/iot-quick-start-test-connection.html)。

**無效的 API 命令**  
確認已輸入正確的 API 命令，以避免顯示 API 命令無效的錯誤訊息。如需所有 API 命令的完整清單，請參閱 AWS IoT API [AWS IoT 參考](https://docs.aws.amazon.com/iot/latest/apireference/Welcome.html)。

**服務端連線錯誤**  
錯誤代碼 503 `ServiceUnavailable`表示錯誤源自伺服器端。  
+ 如需[AWS Health 儀板表 所有 AWS 服務的目前狀態，請參閱 （所有服務）](https://health.aws.amazon.com/health/status)。 AWS 
+ 如需了解您個人的目前狀態，請參閱 [AWS Health 儀板表 （個人 AWS 帳戶)](https://aws.amazon.com/premiumsupport/technology/aws-health-dashboard/) AWS 帳戶。