本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解 AWS IoT SiteWise 規則動作
若要疑難排解中的 AWS IoT SiteWise 規則動作 AWS IoT Core,您可以執行下列其中一個程序:
-
設定 Amazon CloudWatch 日誌
-
為規則設定重新發佈錯誤動作
接下來,將錯誤訊息與本主題所述的錯誤相比較,對您的問題進行疑難排解。
設定 AWS IoT Core 記錄
您可以設定 AWS IoT 為將各種層級的資訊 CloudWatch 記錄到記錄檔。
若要設定和存取 CloudWatch 記錄
-
若要設定的記錄 AWS IoT Core,請參閱AWS IoT 開發人員指南中的使用記 CloudWatch 錄進行監控。
-
導覽至主CloudWatch 控台
。 -
在導覽窗格中,選擇 Log groups (日誌群組)。
-
選擇AWSIotLogs群組。
-
選擇最近的日誌串流。依預設, CloudWatch 會先顯示最新的記錄資料流。
-
選擇日誌項目以展開日誌訊息。日誌項目看起來可能與下列螢幕擷取畫面類似。
-
比較錯誤訊息與本主題所述的錯誤,針對您的問題進行故障診斷。
設定重新發佈錯誤動作
您可以設定規則上的錯誤動作以處理錯誤訊息。在此程序中,您可以將重新發佈規則動作設定為錯誤動作,以便在MQTT測試用戶端中檢視錯誤訊息。
注意
重新發佈錯誤動作只會輸出相當於 ERROR
層級日誌的內容。如果您想要更詳細的記錄檔,則必須設定 CloudWatch 記錄檔。
將重新發佈錯誤動作新增到規則
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)。
-
選擇您的規則。
-
在 Error action (錯誤動作) 下方,選擇 Add action (新增動作)。
-
選擇「將訊息重新發佈至 AWS IoT 主題」。
-
選擇頁面底部的 Configure action (設定動作)。
-
在「主題」中,輸入唯一的主題 (例如,
sitewise/windfarm/rule/error
)。 AWS IoT Core 會將錯誤訊息重新發佈到此主題。 -
選擇選 AWS IoT Core 取以授與執行錯誤動作的存取權。
-
選擇您已針對規則建立之角色旁的 Select (選取)。
-
選擇 Update Role (更新角色) 以將其他許可新增到角色。
-
選擇新增動作。
您規則的錯誤動作看起來應與下列螢幕擷取畫面類似。
-
選擇主機左上角的向後箭頭,返回 AWS IoT 主機首頁。
設定重新發佈錯誤動作之後,您可以在中檢視MQTT測試用戶端中 AWS IoT Core的錯誤訊息。
在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。在MQTT測試客戶端中,您可以收到規則的錯誤消息以解決問題。
訂閱錯誤動作主題
-
導覽至 AWS IoT 主控台
。 -
在左側導覽頁面中,選擇 [測試] 以開啟MQTT測試用戶端。
-
在 Subscription topic (訂閱主題) 欄位中,輸入您之前設定的錯誤主題 (例如
sitewise/windfarm/rule/error
),然後選擇 Subscribe to topic (訂閱主題)。 -
注意出現的錯誤訊息,然後展開錯誤訊息中的
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 規則動作。
將重新發佈錯誤動作新增到規則
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇 [郵件路由],然後選擇 [規則]。
-
選擇您先前建立的規則,然後選擇 [編輯]。
-
在 [錯誤動作-選用] 下,選擇 [新增錯誤動作]。
-
選擇「將訊息重新發佈至 AWS IoT 主題」。
-
在主題中,輸入錯誤的路徑 (例如,
sitewise/rule/tutorial/error
)。 AWS IoT Core 會將錯誤訊息重新發佈到此主題。 -
選擇您之前創建的角色(例如,SiteWiseTutorialDeviceRuleRole)。
-
選擇更新。
設定重新發佈錯誤動作之後,您可以在中檢視MQTT測試用戶端中 AWS IoT Core的錯誤訊息。
在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。
訂閱錯誤動作主題
-
導覽至 AWS IoT 主控台
。 -
在左側導覽頁面中,選擇MQTT測試用戶端以開啟MQTT測試用戶端。
-
在 [主題篩選] 欄位中,輸入
sitewise/rule/tutorial/error
並選擇 [訂閱]。
出現錯誤訊息時,請檢視任何錯誤訊息中的 failures
陣列以診斷問題。如需可能問題和解決方式的詳細資訊,請參閱疑難排解 AWS IoT SiteWise 規則動作。
如果沒有出現錯誤,請檢查您的規則已啟用,以及您訂閱的主題和您在重新發佈錯誤動作中設定的主題相同。如果錯誤在您這麼做之後仍未出現,請檢查裝置指令碼是否正在執行,並成功更新裝置的陰影。
注意
您也可以訂閱裝置的陰影更新主題,以檢視 AWS IoT SiteWise 動作剖析的承載。若要這麼做,請訂閱下列主題。
$aws/things/+/shadow/update/accepted
對規則進行疑難排解 (DynamoDB)
如果示範資產資料未如預期出現在 DynamoDB 表格中,請遵循此程序中的步驟對規則進行疑難排解。在此程序中,您可以將重新發佈規則動作設定為錯誤動作,以便在MQTT測試用戶端中檢視錯誤訊息。您也可以將記錄設定為記 CloudWatch 錄以進行疑難排解。如需詳細資訊,請參閱AWS IoT 開發人員指南中的使用 CloudWatch 記錄進行監控。
將重新發佈錯誤動作新增到規則
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)。
-
選擇您稍早建立的規則。
-
在 Error action (錯誤動作) 下方,選擇 Add action (新增動作)。
-
選擇「將訊息重新發佈至 AWS IoT 主題」。
-
選擇頁面底部的 Configure action (設定動作)。
-
在 Topic (主題) 中,輸入
windspeed/error
。 AWS IoT 核心會將錯誤訊息重新發佈到此主題。 -
選擇選取以授與 AWS IoT 核心存取權,以使用您先前建立的角色執行錯誤動作。
-
選擇您角色旁邊的 Select (選取)。
-
選擇 Update Role (更新角色) 以將其他許可新增到角色。
-
選擇 Add action (新增動作) 來完成新增錯誤動作。
-
選擇主機左上角的向後箭號,返回 AWS IoT Core 主控台首頁。
設定重新發行錯誤動作之後,您可以在 AWS IoT Core 的MQTT測試用戶端中檢視錯誤訊息。
在下列程序中,您會訂閱MQTT測試用戶端中的錯誤主題。
訂閱錯誤動作主題
-
在 AWS IoT 核心主控台的左側導覽頁面中,選擇 [測試]。
-
在 Subscription topic (訂閱主題) 欄位中,輸入
windspeed/error
,然後選擇 Subscribe to topic (訂閱主題)。 -
注意出現的錯誤訊息,並探索錯誤訊息中的
failures
陣列,以診斷下列常見問題:-
規則查詢陳述式中的拼字錯誤
-
角色許可不足
如果沒有出現錯誤,請檢查您的規則已啟用,以及您訂閱的主題和您在重新發佈錯誤動作中設定的主題相同。如果仍然沒有出現錯誤,請檢查您的示範風力發電廠資產仍然存在,並且您已在風速屬性上啟用通知。如果您的示範資產已過期且消失 AWS IoT SiteWise,您可以建立新的示範並更新規則查詢陳述式,以反映更新的資產模型和屬性IDs。
-