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

终止支持通知: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 通知。

  1. 按照中的配置资产警报 Amazon IoT SiteWise程序进行操作,直到完成编辑资产模型属性的步骤。

  2. 对于要迁移的每个属性,将 MQTT 通知状态更改为 “活动”。

    屏幕截图显示 MQTT 通知状态下拉列表在 Amazon IoT SiteWise 控制台中的位置。
  3. 记下每个修改后的警报属性的警报发布到的主题路径。

有关更多信息,请参阅以下文档资源:

步骤 2:创建 Amazon Lambda 函数

创建一个 Lambda 函数,用于读取 MQTT 主题发布的 TQV 数组,并将单个值发布到。 CloudWatch我们将使用此 Lambda 函数作为在 Amazon IoT Core 消息规则中触发的目标操作。

  1. 打开 Amazon Lambda console

  2. 选择创建函数

  3. 输入函数名称的名称

  4. 选择 NodeJS 22.x 作为运行时间。

  5. 更改默认执行角色下拉列表中,选择使用现有角色,然后选择您在之前的步骤中创建的 IAM 角色。

    注意

    此过程假设您已经迁移了探测器模型。如果您没有 IAM 角色,请参阅

  6. 选择创建函数

  7. 替换硬编码常量后,粘贴以下代码片段。

    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 消息过程进行操作,在出现提示时输入以下信息:

    1. 命名消息路由规则SiteWiseToCloudwatchAlarms

    2. 对于查询,您可以使用以下内容:

      SELECT * FROM '$aws/sitewise/asset-models/your-asset-model-id/assets/your-asset-id/properties/your-property-id'
    3. 规则操作中,选择 Lambda 操作以将生成的数据发送到 Amazon IoT SiteWise 。 CloudWatch例如:

      显示了 Lambda 函数的规则操作的屏幕截图。

步骤 4:查看 CloudWatch 指标

当您将数据提取到之前选择的属性时 Amazon IoT SiteWise,会将数据路由到我们在中步骤 1:在资产属性上启用 MQTT 通知创建的 Lambda 函数。步骤 2:创建 Amazon Lambda 函数在此步骤中,您可以查看 Lambda 是否将您的指标发送到。 CloudWatch

  1. 打开 CloudWatch Amazon Web Services Management Console

  2. 在左侧导航栏中,选择指标,然后选择所有指标

  3. 选择警报的 URL 将其打开。

  4. 在 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 门户中查看警报状态和属性。

  1. 将外部警报配置为资产模型中的一个属性。有关更多信息,请参阅《Amazon IoT SiteWise 用户指南》 Amazon IoT SiteWise中的定义外部警报

  2. 创建一个 Lambda 函数,该函数使用Amazon IoT SiteWise 用户指南中的 BatchPutAssetPropertyValueAPI 向其发送警报数据。 Amazon IoT SiteWise

  3. 设置 CloudWatch 警报操作,以便在警报状态发生变化时调用 Lambda 函数。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 “警报操作” 部分。