AWS IoT SiteWise - AWS IoT Core

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

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 規則所需的存取權

    您可連接下列範例信任政策至該角色。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*" } ] }

    若要改善安全性,您可以在 Condition 屬性中指定 AWS IoT SiteWise 資產階層路徑。下列範例是指定資產階層路徑的信任政策。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • 當您 AWS IoT SiteWise 使用此動作將資料傳送至 時,您的資料必須符合 BatchPutAssetPropertyValue操作的要求。如需詳細資訊,請參閱《AWS IoT SiteWise API 參考》中的 BatchPutAssetPropertyValue

參數

當您使用此動作建立 AWS IoT 規則時,您必須指定下列資訊:

putAssetPropertyValueEntries

資產屬性值項目的清單,其中每個項目都包含下列資訊:

propertyAlias

(選用) 與資產屬性相關聯的屬性別名。指定 propertyAlias 或同時指定 assetIdpropertyId。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的將工業資料串流映射至資產屬性

支援替代範本:是

assetId

(選用) AWS IoT SiteWise 資產的 ID。指定 propertyAlias 或同時指定 assetIdpropertyId

支援替代範本:是

propertyId

(選用) 該資產屬性的 ID。指定 propertyAlias 或同時指定 assetIdpropertyId

支援替代範本:是

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

(選用) 說明數值品質的字串。有效值:GOODBADUNCERTAIN

支援替代範本:是

value

包含下列其中一個值欄位的值結構,視資產屬性的資料類型而定:

booleanValue

(選用) 包含值項目之布林值的字串。

支援替代範本:是

doubleValue

(選用) 包含值項目之雙值的字串。

支援替代範本:是

integerValue

(選用) 包含值項目之整數值的字串。

支援替代範本:是

stringValue

(選用) 值項目的字串值。

支援替代範本:是

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" } } ] } }

另請參閱