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

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

Amazon IoT SiteWise 规则操作故障排除

要对 Amazon IoT Core 中的 Amazon IoT SiteWise 规则操作进行故障排除,可以执行以下步骤之一:

  • 配置亚马逊 CloudWatch 日志

  • 为规则配置重新发布错误操作

然后,将错误消息与本主题中的错误进行比较,以排查问题。

配置 Amazon IoT Core 日志

您可以配置为Amazon IoT将不同级别的信息 CloudWatch 记录到日志中。

配置和访问 CloudWatch 日志
  1. 要配置日志Amazon IoT Core,请参阅《Amazon IoT开发者指南》中的 “使用 CloudWatch 日志进行监控”。

  2. 导航到 CloudWatch 控制台

  3. 在导航窗格中,选择 Log groups(日志组)

  4. 选择群AWSIotLogs组。

  5. 选择最近的日志流。默认情况下,首先 CloudWatch 显示最新的日志流。

  6. 选择日志条目以展开日志消息。您的日志条目可能类似于以下屏幕截图。

    
              CloudWatch “Amazon IoT日志” 屏幕截图。
  7. 将错误消息与本主题中的错误进行比较,以排查问题。

配置重新发布错误操作

您可以对规则的错误操作进行配置以处理错误消息。在该过程中,您将重新发布规则操作配置为错误操作,以在 MQTT 测试客户端中查看错误消息。

注意

重新发布错误操作仅输出 ERROR 级别日志的等效内容。如果您想要更多详细日志,则必须配置 CloudWatch 日志

在规则中添加重新发布错误操作
  1. 导航到 Amazon IoT 控制台

  2. 在左侧导航窗格中,选择行动,然后选择规则

  3. 选择您的规则。

  4. Error action (错误操作) 下面,选择 Add action (添加操作)

  5. 选择 Schema 以及 ScheAmazon IoT m a。

    
              Amazon IoT Core“选择操作” 页面屏幕截图,其中突出显示了 “重新发布” 操作。
  6. 选择页面底部的 Configure action (配置操作)

  7. Topic (主题) 中,输入唯一主题(例如 sitewise/windfarm/rule/error)。Amazon IoT Core 将错误消息重新发布到该主题。

  8. 选择 Select (选择) 以授予 Amazon IoT Core 访问权限来执行错误操作。

  9. 选择为规则创建的角色旁边的 Select (选择)

  10. 选择 Update Role (更新角色) 以在角色中添加其他权限。

  11. 选择添加操作

    您的规则的错误操作应类似于以下屏幕截图。

    
              Amazon IoT Core“规则” 页面重新发布错误操作屏幕截图。
  12. 选择控制台左上角的后退箭头以返回到 Amazon IoT 控制台主页。

在设置重新发布错误操作后,您可以在 Amazon IoT Core 上的 MQTT 测试客户端中查看错误消息。

在以下过程中,您在 MQTT 测试客户端中订阅错误主题。在 MQTT 测试客户端中,您可以接收规则的错误消息以排查问题。

订阅错误操作主题
  1. 导航到 Amazon IoT 控制台

  2. 在左侧导航页面中,选择 Test (测试) 以打开 MQTT 测试客户端。

  3. Subscription topic (订阅主题) 字段中,输入您之前配置的错误主题(例如,sitewise/windfarm/rule/error),然后选择 Subscribe to topic (订阅主题)

    
              Amazon IoT Core“MQTT 客户端” 页面屏幕截图,突出显示了 “订阅主题” 按钮。
  4. 等待错误消息出现,然后在任何错误消息中展开 failures 数组。

    接下来,将错误消息与本主题中的错误进行比较,以排查问题。

排查问题

使用以下信息排查规则问题。

错误:成员必须在当前时间戳之前的 604800 秒以内,在当前时间戳之后 300 秒内

与当前 Unix 纪元时间相比,您的时间戳早于 7 天或晚于 5 分钟。尝试以下操作:

  • 检查您的时间戳是否采用 Unix 纪元 (UTC) 时间。如果您提供具有不同时区的时间戳,则会收到此错误。

  • 检查您的时间戳是否以秒为单位。Amazon IoT SiteWise 期望时间戳分割成以秒为单位的时间(采用 Unix 纪元时间)和以纳秒为单位的偏移量。

  • 检查您上传的数据是否不晚于过去 7 天的时间戳。

错误:Property value does not match data type <type> (属性值与数据类型 <type> 不匹配)

规则操作中的条目与目标资产属性具有不同的数据类型。例如,您的目标资产属性为 DOUBLE,但您选择的数据类型为 Integer (整数),或者您用 integerValue 传递了值。尝试以下操作:

  • 如果从 Amazon IoT 控制台配置规则,请检查您是否为每个条目选择了正确的 Data type (数据类型)

  • 如果您从 API 或 Amazon Command Line Interface (Amazon CLI) 配置规则,请检查您的 value 对象是否使用了正确的类型字段(例如,对于 DOUBLE 属性,正确的类型字段为 doubleValue)。

错误:用户:<role-arn>无权在资源BatchPutAssetPropertyValue 上执行:iotsitewise:

未授权您的规则访问目标资产属性,或者目标资产属性不存在。尝试以下操作:

  • 检查您的属性别名是否正确,以及您是否有具有给定属性别名的资产属性。有关更多信息,请参阅将工业数据流映射到资产属性

  • 检查您的规则是否具有角色以及该角色是否允许目标资产属性具有 iotsitewise:BatchPutAssetPropertyValue 权限,例如通过目标资产的层次结构。有关更多信息,请参阅授予 Amazon IoT 所需的访问权限

错误:iot.amazonaws.com 无法AssumeRole 在资源上执行:sts: <role-arn>

您的用户无权代入您在Amazon Identity and Access Management (IAM) 中的规则中的角色。

检查您的用户是否iam:PassRole有权使用您的规则中的角色。有关更多信息,请参阅Amazon IoT开发者指南中的传递角色权限

信息:No requests were sent (没有发送请求)。 PutAssetPropertyValueEntries 执行替换模板后为空。

注意

此消息是 INFO 级别日志。

您的请求必须至少具有一个包含所有必需参数的条目。

检查规则的参数(包括替换模板)是否会导致非空值。替换模板无法访问规则查询语句中的 AS 子句定义的值。有关更多信息,请参阅Amazon IoT开发者指南中的替代模板