终止支持通知:2026 年 5 月 20 日 Amazon 终止对的支持。 Amazon IoT Events 2026 年 5 月 20 日之后,您将无法再访问 Amazon IoT Events 控制台或 Amazon IoT Events 资源。如需了解更多信息,请访问此支持Amazon IoT Events 终端。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中 Amazon IoT SiteWise 警报的迁移程序 Amazon IoT Events
本节介绍替代解决方案,这些解决方案在您迁移后可提供类似的警报功能 Amazon IoT Events。
对于使用 Amazon IoT Events 警报的 Amazon IoT SiteWise 属性,您可以使用警 CloudWatch报迁移到解决方案。这种方法提供了强大的监控功能, SLAs 并具有成熟的附加功能,例如异常检测和分组警报。
比较架构
当前 Amazon IoT SiteWise 属性的 Amazon IoT Events 警报配置需要AssetModelCompositeModels
在资产模型中创建,如Amazon IoT SiteWise 用户指南中的定义外部警报中所述。 Amazon IoT SiteWise对新解决方案的修改通常通过 Amazon IoT Events
控制台进行管理。
新的解决方案利用警报提供 CloudWatch 警报管理。此方法使用 Amazon IoT SiteWise 通知将属性数据点发布到 Amazon IoT Core MQTT 主题,然后由 Lambda 函数进行处理。该功能将这些通知转换为 CloudWatch 指标,从而通过 CloudWatch的警报框架实现警报监控。
用途 | 解决方案 | 差异 |
---|---|---|
数据源-属性数据来自 Amazon IoT SiteWise |
Amazon IoT SiteWise MQTT 通知 |
将直接的 IoT Events 集成替换为来自 Amazon IoT SiteWise 属性的 MQTT 通知 |
数据处理-转换属性数据 |
Lambda 函数 |
处理 Amazon IoT SiteWise 属性通知并将其转换为 CloudWatch 指标 |
警报评估-监控指标并触发警报 |
亚马逊 CloudWatch 警报 |
用 Amazon IoT Events 警报取代 CloudWatch 警报,提供其他功能,例如异常检测 |
集成 — 连接 Amazon IoT SiteWise |
Amazon IoT SiteWise 外部警报 |
可选功能,可将 CloudWatch 警报 Amazon IoT SiteWise 作为外部警报导回去 |
步骤 1:在资产属性上启用 MQTT 通知
如果您使用 Amazon IoT Events 集成的 Amazon IoT SiteWise 警报,则可以为要监控的每个属性启用 MQTT 通知。
-
按照中的配置资产警报 Amazon IoT SiteWise程序进行操作,直到完成编辑资产模型属性的步骤。
-
对于要迁移的每个属性,将 MQTT 通知状态更改为 “活动”。
-
记下每个修改后的警报属性的警报发布到的主题路径。
有关更多信息,请参阅以下文档资源:
-
在《Amazon IoT SiteWise 用户指南》中了解 MQTT 主题中的资产属性。
-
《Amazon IoT 开发人员指南》中的 MQTT 主题。
步骤 2:创建 Amazon Lambda 函数
创建一个 Lambda 函数,用于读取 MQTT 主题发布的 TQV 数组,并将单个值发布到。 CloudWatch我们将使用此 Lambda 函数作为在 Amazon IoT Core 消息规则中触发的目标操作。
-
选择创建函数。
-
输入函数名称的名称。
-
选择 NodeJS 22.x 作为运行时间。
-
在更改默认执行角色下拉列表中,选择使用现有角色,然后选择您在之前的步骤中创建的 IAM 角色。
-
选择创建函数。
-
替换硬编码常量后,粘贴以下代码片段。
import json import boto3 from datetime import datetime # Initialize CloudWatch client cloudwatch = boto3.client('cloudwatch') def lambda_handler(message, context): try: # Parse the incoming IoT message # Extract relevant information asset_id = message['payload']['assetId'] property_id = message['payload']['propertyId'] # Process each value in the values array for value in message['payload']['values']: # Extract timestamp and value timestamp = datetime.fromtimestamp(value['timestamp']['timeInSeconds']) metric_value = value['value']['doubleValue'] quality = value.get('quality', 'UNKNOWN') # Publish to CloudWatch response = cloudwatch.put_metric_data( Namespace='
IoTSiteWise/AssetMetrics
', MetricData=[ { 'MetricName': f'Property_your-property-id
', 'Value': metric_value, 'Timestamp': timestamp, 'Dimensions': [ { 'Name': 'AssetId', 'Value': 'your-asset-id
' }, { 'Name': 'Quality', 'Value': quality } ] } ] ) return { 'statusCode': 200, 'body': json.dumps('Successfully published metrics to CloudWatch') } except Exception as e: print(f'Error processing message: {str(e)}') return { 'statusCode': 500, 'body': json.dumps(f'Error: {str(e)}') }
步骤 3:创建 Amazon IoT Core 邮件路由规则
-
按照教程:重新发布 MQTT 消息过程进行操作,在出现提示时输入以下信息:
-
命名消息路由规则
SiteWiseToCloudwatchAlarms
。 -
对于查询,您可以使用以下内容:
SELECT * FROM '$aws/sitewise/asset-models/
your-asset-model-id
/assets/your-asset-id
/properties/your-property-id
' -
在规则操作中,选择 Lambda 操作以将生成的数据发送到 Amazon IoT SiteWise 。 CloudWatch例如:
-
步骤 4:查看 CloudWatch 指标
当您将数据提取到之前选择的属性时 Amazon IoT SiteWise,会将数据路由到我们在中步骤 1:在资产属性上启用 MQTT 通知创建的 Lambda 函数。步骤 2:创建 Amazon Lambda 函数在此步骤中,您可以查看 Lambda 是否将您的指标发送到。 CloudWatch
-
在左侧导航栏中,选择指标,然后选择所有指标。
-
选择警报的 URL 将其打开。
-
在 S ourc e 选项卡下, CloudWatch 输出类似于此示例。此源信息确认指标数据正在输入到 CloudWatch。
{ "view": "timeSeries", "stacked": false, "metrics": [ [ "IoTSiteWise/AssetMetrics", "Property_
your-property-id-hash
", "Quality", "GOOD", "AssetId", "your-asset-id-hash
", { "id": "m1" } ] ], "region": "your-region
" }
步骤 5:创建 CloudWatch 警报
按照 Amazon CloudWatch 用户指南中的基于静态阈值创建 CloudWatch警报程序,为每个相关指标创建警报。
注意
Amazon 中有许多警报配置选项。有关 CloudWatch 警报 CloudWatch 的更多信息,请参阅《亚马逊 CloudWatch 用户指南》中的 “使用亚马逊 CloudWatch 警报”。
步骤 6:(可选)将 CloudWatch 警报导入 Amazon IoT SiteWise
您可以将 CloudWatch 警报配置为 Amazon IoT SiteWise 使用 CloudWatch 警报操作和 Lambda 将数据发送回去。这种集成使您能够在 Monito SiteWise r 门户中查看警报状态和属性。
-
将外部警报配置为资产模型中的一个属性。有关更多信息,请参阅《Amazon IoT SiteWise 用户指南》 Amazon IoT SiteWise中的定义外部警报。
-
创建一个 Lambda 函数,该函数使用Amazon IoT SiteWise 用户指南中的 BatchPutAssetPropertyValueAPI 向其发送警报数据。 Amazon IoT SiteWise
-
设置 CloudWatch 警报操作,以便在警报状态发生变化时调用 Lambda 函数。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 “警报操作” 部分。