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 核心规则提取数据” 部分。AWS IoT SiteWise

要求

此规则操作具有以下要求:

  • AWS IoT 可以代入执行iotsitewise:BatchPutAssetPropertyValue操作的 IAM 角色。有关更多信息,请参阅授予 AWS IoT 规则所需的访问权限

    您可以将下列示例信任策略附加到要代入的角色。

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

    为了提高安全性,您可以在Condition属性中指定 AWS IoT SiteWise 资产层次结构路径。以下示例是指定资产层次结构路径的信任策略。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • 当您通过此操作向发送数据时,您的数据必须满足BatchPutAssetPropertyValue操作的要求。 AWS IoT SiteWise 有关更多信息,请参阅《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 纪元时间表示的时间(以秒为单位)的字符串。如果您的消息负载没有时间戳,则可使用 timestamp(),它将返回当前时间(以毫秒为单位)。要将该时间转换为秒,可以使用以下替换模板:${floor(timestamp() / 1E3)}

支持替换模板:是

offsetInNanos

(可选)包含与以秒为单位的时间的纳秒时间偏移量的字符串。如果您的消息负载没有时间戳,则可使用 timestamp(),它将返回当前时间(以毫秒为单位)。要计算与该时间的纳秒偏移量,可以使用以下替换模板:${(timestamp() % 1E3) * 1E6}

支持替换模板:是

关于 Unix 纪元时间,仅 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 规则中定义了物联网 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" } } ] } }

另请参阅