View a markdown version of this page

Amazon IoT SiteWise - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon IoT SiteWise

Amazon IoT SiteWise (iotSiteWise) 操作将数据从 MQTT 消息发送到中的 Amazon IoT SiteWise资产属性。

您可以按照教程进行操作,该教程向您展示如何从 Amazon IoT 事物中提取数据。有关更多信息,请参阅《Amazon IoT SiteWise 用户指南》中的 “ Amazon IoT SiteWise 从 Amazon IoT 事物中提取数据” 教程或 “使用 Amazon IoT 核心规则摄取数据” 部分。

要求

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

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

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

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

    为了提高安全性,可以在Condition属性中指定 Amazon 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/*" ] } } } ] }
  • 当您 Amazon IoT SiteWise 使用此操作向发送数据时,您的数据必须满足BatchPutAssetPropertyValue操作的要求。有关更多信息,请参阅《Amazon IoT SiteWise API Reference》中的 BatchPutAssetPropertyValue。

参数

使用此操作创建 Amazon IoT 规则时,必须指定以下信息:

putAssetPropertyValueEntries

包含以下信息的资产属性值条目的列表:

propertyAlias

(可选)与您的资产属性关联的属性别名。指定 propertyAlias 或同时指定 assetId 和 propertyId。有关更多信息,请参阅 《Amazon IoT SiteWise 用户指南》中的将工业数据流映射到资产属性。

支持替换模板:是

assetId

(可选) Amazon IoT SiteWise 资产的 ID。指定 propertyAlias 或同时指定 assetId 和 propertyId。

支持替换模板:是

propertyId

(可选)资产属性的 ID。指定 propertyAlias 或同时指定 assetId 和 propertyId。

支持替换模板:是

entryId

(可选)此条目的唯一标识符。定义 entryId,以便在出现故障时更好地跟踪哪条消息导致了错误。默认为新 UUID。

支持替换模板:是

propertyValues

要插入的属性值的列表,均包含以下格式的时间戳、质量和值(TQV):

timestamp

包含以下信息的时间戳结构:

timeInSeconds

包含用 Unix 纪元时间表示的时间(以秒为单位)的字符串。如果您的消息负载没有时间戳,则可使用 timestamp(),它将返回当前时间(以毫秒为单位)。要将该时间转换为秒,可以使用以下替换模板:${floor(timestamp() / 1E3)}。

支持替换模板:是

offsetInNanos

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

支持替换模板:是

关于 Unix 纪元时间,仅 Amazon IoT SiteWise 接受时间戳在过去 7 天内(将来 5 分钟)内时间戳不超过 7 天的条目。

quality

(可选)描述值的质量的字符串。有效值:GOOD、BAD、UNCERTAIN。

支持替换模板:是

value

包含以下值字段之一的值结构,具体取决于资产属性的数据类型:

booleanValue

(可选)包含值条目布尔值的字符串。

支持替换模板:是

doubleValue

(可选)包含值条目的双值的字符串。

支持替换模板:是

integerValue

(可选)包含值条目整数值的字符串。

支持替换模板:是

stringValue

(可选)值条目的字符串值。

支持替换模板:是

roleArn

授予向发送资产价值的 Amazon IoT 权限的 IAM 角色的 ARN。 Amazon IoT SiteWise有关更多信息,请参阅 要求。

支持替换模板:否

示例

以下 JSON 示例定义了 Amazon 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 示例在 Amazon 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" } } ] } }

另请参阅