本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS IoT SiteWise
 AWS IoT SiteWise (iotSiteWise) 動作會將資料從 MQTT 訊息傳送至其中的資產屬性 AWS IoT SiteWise。
您可以遵循教學課程,示範如何從 AWS IoT 物件擷取資料。如需詳細資訊,請參閱 AWS IoT SiteWise 使用者指南中的從 AWS IoT 實物擷取資料 AWS IoT SiteWise教學課程或使用AWS IoT 核心規則擷取資料一節。
要求
此規則動作具有下列需求:
- 
                        AWS IoT 可以擔任以執行 iotsitewise:BatchPutAssetPropertyValue操作的 IAM 角色。如需詳細資訊,請參閱授予 AWS IoT 規則所需的存取權。您可連接下列範例信任政策至該角色。 若要提高安全性,您可以在 Condition屬性中指定 AWS IoT SiteWise 資產階層路徑。下列範例是指定資產階層路徑的信任政策。
- 
                        當您 AWS IoT SiteWise 使用此動作將資料傳送至 時,您的資料必須符合 BatchPutAssetPropertyValue操作的要求。如需詳細資訊,請參閱《AWS IoT SiteWise API 參考》中的 BatchPutAssetPropertyValue。
參數
當您使用此動作建立 AWS IoT 規則時,您必須指定下列資訊:
- putAssetPropertyValueEntries
- 
                            資產屬性值項目的清單,其中每個項目都包含下列資訊: - propertyAlias
- 
                                        (選用) 與資產屬性相關聯的屬性別名。指定 propertyAlias或同時指定assetId和propertyId。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的將工業資料串流映射至資產屬性。支援替代範本:是 
- assetId
- 
                                        (選用) AWS IoT SiteWise 資產的 ID。指定 propertyAlias或同時指定assetId和propertyId。支援替代範本:是 
- propertyId
- 
                                        (選用) 該資產屬性的 ID。指定 propertyAlias或同時指定assetId和propertyId。支援替代範本:是 
- entryId
- 
                                        (選用) 此項目的唯一識別符。定義 entryId,以更好地追蹤在發生失敗時哪則訊息造成錯誤。預設為新的 UUID。支援替代範本:是 
- propertyValues
- 
                                        要插入的屬性值清單,其中每個屬性值包含以下格式的時間戳記、品質和值 (TQV): - timestamp
- 
                                                  包含下列資訊的時間戳記結構: - timeInSeconds
- 
                                                  包含 Unix epoch 時間中時間 (以秒為單位) 的字串。如果您的消息承載沒有時間戳記,可以使用 timestamp(),返回目前時間 (以毫秒為單位)。若要將該時間轉換為以秒為單位,您可以使用下列替代範本: ${floor(timestamp() / 1E3)}。支援替代範本:是 
- offsetInNanos
- 
                                                  (選用) 包含從該時間 (以秒為單位) 開始的奈秒時間位移的字串。如果您的消息承載沒有時間戳記,可以使用 timestamp(),返回目前時間 (以毫秒為單位)。若要計算從該時間開始的奈秒位移,可以使用下列替代範本: ${(timestamp() % 1E3) * 1E6}。支援替代範本:是 
 關於 Unix epoch 時間, 僅 AWS IoT SiteWise 接受過去最多 7 天內最多 5 分鐘的時間戳記項目。 
- quality
- 
                                                  (選用) 說明數值品質的字串。有效值: GOOD、BAD、UNCERTAIN。支援替代範本:是 
- value
- 
                                                  包含下列其中一個值欄位的值結構,視資產屬性的資料類型而定: 
 
 
- roleArn
- 
                            授予 AWS IoT 許可的 IAM 角色 ARN,可將資產屬性值傳送至該角色 AWS IoT SiteWise。如需詳細資訊,請參閱要求。 支援替代範本:否 
範例
下面的 JSON 範例定義 AWS IoT 規則中的基本 IoT SiteWise 動作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "/some/property/alias", "propertyValues": [ { "timestamp": { "timeInSeconds": "${my.payload.timeInSeconds}" }, "value": { "integerValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }
下列 JSON 範例定義 AWS IoT 規則中的 IoT SiteWise 動作。此範例使用此主題作為屬性別名和 timestamp() 函數。例如,如果您將資料發佈至 /company/windfarm/3/turbine/7/rpm,此動作會將資料傳送至屬性別名與您指定主題相同的資產屬性。
{ "topicRulePayload": { "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "${topic()}", "propertyValues": [ { "timestamp": { "timeInSeconds": "${floor(timestamp() / 1E3)}", "offsetInNanos": "${(timestamp() % 1E3) * 1E6}" }, "value": { "doubleValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }
另請參閱
- 
                        《AWS IoT SiteWise 使用者指南》中的什麼是 AWS IoT SiteWise? 
- 
                        AWS IoT SiteWise 《 使用者指南》中的使用 AWS IoT Core 規則擷取資料 
- 
                        AWS IoT SiteWise 《 使用者指南》中的AWS IoT SiteWise 從 AWS IoT 實物將資料擷取至 
- 
                        AWS IoT SiteWise 《 使用者指南》中的AWS IoT SiteWise 規則動作疑難排解