疑難排解 AWS IoT SiteWise 規則動作 - AWS IoT SiteWise

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

疑難排解 AWS IoT SiteWise 規則動作

若要疑難排解中的 AWS IoT SiteWise 規則動作 AWS IoT Core,您可以執行下列其中一個程序:

  • 設定 Amazon CloudWatch 日誌

  • 為規則設定重新發佈錯誤動作

接下來,將錯誤訊息與本主題所述的錯誤相比較,對您的問題進行疑難排解。

設定 AWS IoT Core 記錄

您可以設定 AWS IoT 為將各種層級的資訊 CloudWatch 記錄到記錄檔。

若要設定和存取 CloudWatch 記錄
  1. 若要設定的記錄 AWS IoT Core,請參閱AWS IoT 開發人員指南中的使用記 CloudWatch 錄進行監控

  2. 導覽至主CloudWatch 控台

  3. 在導覽窗格中,選擇 Log groups (日誌群組)。

  4. 選擇AWSIotLogs群組。

  5. 選擇最近的日誌串流。依預設, CloudWatch 會先顯示最新的記錄資料流。

  6. 選擇日誌項目以展開日誌訊息。日誌項目看起來可能與下列螢幕擷取畫面類似。

    CloudWatch 「AWS IoT 日誌」截圖。
  7. 比較錯誤訊息與本主題所述的錯誤,針對您的問題進行故障診斷。

設定重新發佈錯誤動作

您可以設定規則上的錯誤動作以處理錯誤訊息。在此程序中,您可以將重新發佈規則動作設定為錯誤動作,以便在MQTT測試用戶端中檢視錯誤訊息。

注意

重新發佈錯誤動作只會輸出相當於 ERROR 層級日誌的內容。如果您想要更詳細的記錄檔,則必須設定 CloudWatch 記錄檔

將重新發佈錯誤動作新增到規則
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)

  3. 選擇您的規則。

  4. Error action (錯誤動作) 下方,選擇 Add action (新增動作)

  5. 選擇「將訊息重新發佈至 AWS IoT 主題」。

    AWS IoT Core 「選取動作」頁面螢幕擷取畫面,並反白顯示「重新發佈」動作。
  6. 選擇頁面底部的 Configure action (設定動作)

  7. 在「主題」中,輸入唯一的主題 (例如,sitewise/windfarm/rule/error)。 AWS IoT Core 會將錯誤訊息重新發佈到此主題。

  8. 選擇 AWS IoT Core 取以授與執行錯誤動作的存取權。

  9. 選擇您已針對規則建立之角色旁的 Select (選取)

  10. 選擇 Update Role (更新角色) 以將其他許可新增到角色。

  11. 選擇新增動作

    您規則的錯誤動作看起來應與下列螢幕擷取畫面類似。

    AWS IoT Core 「規則」頁面重新發布錯誤操作屏幕截圖。
  12. 選擇主機左上角的向後箭頭,返回 AWS IoT 主機首頁。

設定重新發佈錯誤動作之後,您可以在中檢視MQTT測試用戶端中 AWS IoT Core的錯誤訊息。

在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。在MQTT測試客戶端中,您可以收到規則的錯誤消息以解決問題。

訂閱錯誤動作主題
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽頁面中,選擇 [測試] 以開啟MQTT測試用戶端。

  3. Subscription topic (訂閱主題) 欄位中,輸入您之前設定的錯誤主題 (例如 sitewise/windfarm/rule/error),然後選擇 Subscribe to topic (訂閱主題)

    AWS IoT Core 「MQTT客戶端」頁面截圖與「訂閱主題」按鈕突出顯示。
  4. 注意出現的錯誤訊息,然後展開錯誤訊息中的 failures 陣列。

    接下來,請比較錯誤訊息與本主題所述的錯誤,針對您的問題進行故障診斷。

排解規則問題

使用下列資訊來疑難排解規則問題。

錯誤:會員必須在目前時間戳記之前的 604800 秒內,而在目前時間戳記之後的 300 秒內

與目前的 Unix 紀元時間相比,您的時間戳記早於 7 天或超過 5 分鐘。請嘗試以下做法:

  • 檢查您的時間戳是否在 Unix 紀元(UTC)時間內。如果您提供不同時區的時間戳記,則會發生此錯誤。

  • 檢查您的時間戳記是否以秒為單位。 AWS IoT SiteWise 期望時間戳分成以秒為單位的時間(以 Unix 紀元時間為單位),並以納秒為單位的偏移量。

  • 確認您上傳的資料時間戳記不遲於過去 7 天。

錯誤:屬性值與 <type> 資料類型不相符

規則動作中的項目具有與目標資產屬性不同的資料類型。例如,您的目標資產屬性為 DOUBLE,而您選取的資料類型為 Integer (整數),或您已傳遞 integerValue 的值。請嘗試以下做法:

  • 如果您從 AWS IoT 主控台設定規則,請檢查您是否為每個項目選擇了正確的資料類型

  • 如果您從API或 AWS Command Line Interface (AWS CLI) 配置規則,請檢查您的value物件是否使用正確的類型欄位 (例如,doubleValue針對DOUBLE屬性)。

錯誤:使用者:<role-arn>未授權在資源上執行:網路位置 BatchPutAssetPropertyValue

您的規則未獲得存取目標資產屬性的授權,或目標資產屬性不存在。請嘗試以下做法:

  • 檢查您的屬性別名是否正確,並確認您擁有具有指定屬性別名的資產屬性。如需詳細資訊,請參閱將工業資料流對映至資產屬性

  • 檢查您的規則是否具有角色,且該角色允許目標資產屬性的 iotsitewise:BatchPutAssetPropertyValue 許可,例如透過目標資產的階層。如需詳細資訊,請參閱授予所需 AWS IoT 的訪問權限

錯誤:無法執行:STS: 在資源上:AssumeRole <role-arn>

您的使用者未獲授權在 AWS Identity and Access Management (IAM) 中擔任您規則上的角色。

檢查您的用戶是否被允iam:PassRole許對您的規則中的角色的權限。如需詳細資訊,請參閱AWS IoT 開發人員指南中的「傳遞角色權限」。

資訊:未傳送任何要求。 PutAssetPropertyValueEntries 執行替換模板後是空的。

注意

此訊息是 INFO 層級日誌。

您的請求必須至少具有一個含有所有必要參數的項目。

檢查您規則的參數 (包括替代範本) 是否導致非空白的值。替代範本無法存取規則查詢陳述式的 AS 子句中定義的值。如需詳細資訊,請參閱AWS IoT 開發人員指南中的替代範本

疑難排解規則 (AWS IoT SiteWise)

如果CPU和記憶體使用量資料未如預期般顯示,請依照此程序中 AWS IoT SiteWise 的步驟對規則進行疑難排解。在此程序中,您可以將重新發佈規則動作設定為錯誤動作,以便在MQTT測試用戶端中檢視錯誤訊息。您也可以將記錄設定為記 CloudWatch 錄以進行疑難排解。如需詳細資訊,請參閱疑難排解 AWS IoT SiteWise 規則動作

將重新發佈錯誤動作新增到規則
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽窗格中,選擇 [郵件路由],然後選擇 [規則]。

  3. 選擇您先前建立的規則,然後選擇 [編輯]。

  4. 在 [錯誤動作-選用] 下,選擇 [新增錯誤動作]。

  5. 選擇「將訊息重新發佈至 AWS IoT 主題」。

  6. 主題中,輸入錯誤的路徑 (例如,sitewise/rule/tutorial/error)。 AWS IoT Core 會將錯誤訊息重新發佈到此主題。

  7. 選擇您之前創建的角色(例如,SiteWiseTutorialDeviceRuleRole)。

  8. 選擇更新

設定重新發佈錯誤動作之後,您可以在中檢視MQTT測試用戶端中 AWS IoT Core的錯誤訊息。

在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。

訂閱錯誤動作主題
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽頁面中,選擇MQTT測試用戶端以開啟MQTT測試用戶端。

  3. 在 [主題篩選] 欄位中,輸入sitewise/rule/tutorial/error並選擇 [訂閱]。

出現錯誤訊息時,請檢視任何錯誤訊息中的 failures 陣列以診斷問題。如需可能問題和解決方式的詳細資訊,請參閱疑難排解 AWS IoT SiteWise 規則動作

如果沒有出現錯誤,請檢查您的規則已啟用,以及您訂閱的主題和您在重新發佈錯誤動作中設定的主題相同。如果錯誤在您這麼做之後仍未出現,請檢查裝置指令碼是否正在執行,並成功更新裝置的陰影。

注意

您也可以訂閱裝置的陰影更新主題,以檢視 AWS IoT SiteWise 動作剖析的承載。若要這麼做,請訂閱下列主題。

$aws/things/+/shadow/update/accepted

對規則進行疑難排解 (DynamoDB)

如果示範資產資料未如預期出現在 DynamoDB 表格中,請遵循此程序中的步驟對規則進行疑難排解。在此程序中,您可以將重新發佈規則動作設定為錯誤動作,以便在MQTT測試用戶端中檢視錯誤訊息。您也可以將記錄設定為記 CloudWatch 錄以進行疑難排解。如需詳細資訊,請參閱AWS IoT 開發人員指南中的使用 CloudWatch 記錄進行監控

將重新發佈錯誤動作新增到規則
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)

  3. 選擇您稍早建立的規則。

    AWS IoT 核心「規則」頁面截圖。
  4. Error action (錯誤動作) 下方,選擇 Add action (新增動作)

  5. 選擇「將訊息重新發佈至 AWS IoT 主題」。

    AWS IoT 核心「選擇操作」頁面屏幕截圖,重新發布操作突出顯示。
  6. 選擇頁面底部的 Configure action (設定動作)

  7. Topic (主題) 中,輸入 windspeed/error。 AWS IoT 核心會將錯誤訊息重新發佈到此主題。

    AWS IoT 核心「配置重新發布操作」頁面屏幕截圖,突出顯示「主題」。
  8. 選擇取以授與 AWS IoT 核心存取權,以使用您先前建立的角色執行錯誤動作。

  9. 選擇您角色旁邊的 Select (選取)

    AWS IoT 核心「配置重新發布操作」頁面截圖,角色選擇按鈕突出顯示。
  10. 選擇 Update Role (更新角色) 以將其他許可新增到角色。

    AWS IoT 核心「配置重新發布操作」頁面屏幕截圖,並突出顯示更新角色按鈕。
  11. 選擇 Add action (新增動作) 來完成新增錯誤動作。

  12. 選擇主機左上角的向後箭號,返回 AWS IoT Core 主控台首頁。

設定重新發行錯誤動作之後,您可以在 AWS IoT Core 的MQTT測試用戶端中檢視錯誤訊息。

在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。

訂閱錯誤動作主題
  1. 在 AWS IoT 核心主控台的左側導覽頁面中,選擇 [測試]。

  2. Subscription topic (訂閱主題) 欄位中,輸入 windspeed/error,然後選擇 Subscribe to topic (訂閱主題)

    AWS IoT 核心「MQTT客戶端」頁面截圖與「訂閱主題」按鈕突出顯示。
  3. 注意出現的錯誤訊息,並探索錯誤訊息中的 failures 陣列,以診斷下列常見問題:

    • 規則查詢陳述式中的拼字錯誤

    • 角色許可不足

    如果沒有出現錯誤,請檢查您的規則已啟用,以及您訂閱的主題和您在重新發佈錯誤動作中設定的主題相同。如果仍然沒有出現錯誤,請檢查您的示範風力發電廠資產仍然存在,並且您已在風速屬性上啟用通知。如果您的示範資產已過期且消失 AWS IoT SiteWise,您可以建立新的示範並更新規則查詢陳述式,以反映更新的資產模型和屬性IDs。