问题标签 [aws-iot-core]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

amazon-web-services - 将 AWS IoT 存储到 AWS DynamoDB 而不在表中重复

我已使用 IoT 核心控制台成功配置了我的 AWS IoT 事物,并创建了一条规则以将来自事物的数据存储在 DynamoDB 表中。该规则有效,但我获得了相同主键值的多条记录。如何避免这种情况,因为我将 dynamodb 表用于 android 应用程序?

0 投票
0 回答
190 浏览

amazon-web-services - AWS IoT Core 自定义授权者

我正在尝试使用此处所示的 AWS IoT Core 自定义授权方 ( https://docs.aws.amazon.com/iot/latest/developerguide/config-custom-auth.html )。我开发了 lambda 并能够使用 HTTP 端点 ( https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_Publish.html ) 进行发布,也能够通过 AWS CLI 通过运行来调用它aws iot test-invoke-authorizer --authorizer-name <name> --mqtt-context "username=***,password=***,clientId=***"。但是,当我尝试使用任何其他客户端时都不起作用(我使用了第一个蚊子、MQTT Explorer 和 paho 客户端)。有了这些,我只能在客户端获得时间,而在服务器端什么也没有。我还尝试了 Java AWS IoT Core SDK,我在boolean sessionPresent = connected.get();连接时遇到了 TLS 协商失败。作为端点,我使用IoT:Data-ATS. 文档中有一条令人困惑的行(https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)在表格中显示应在端口 443 中使用带有 MQTT 的自定义身份验证,并带有脚注。脚注说端口 443 中的自定义身份验证不起作用。这没有任何意义。

任何想法或帮助?

Mosquitto_sub 截图: mosquitto_sub -d -h **** -p 443 -u username?x-amz-customauthorizer-name=*** -P test -t test --cafile /etc/ssl/certs/Amazon_Root_CA_1.pem -i ***

帕霍斩钉截铁:

AWS 客户端截图:

0 投票
1 回答
81 浏览

amazon-cloudwatch - 基于 IoT 传感器数据创建自定义 cloudwatch 指标

需要知道,如何根据以下场景创建自定义日志指标。

我已将我的 AWS IoT 影子数据(当满足指定的 IoT 规则时)发送到 cloudwatch 日志组。它包含

  • 如果我们的一个传感器在 5 分钟内发送了 3 次以上数据,我想发送 cloudwatch 警报。

前任:

或者

  • 但目前我无法做到这一点,因为我找不到任何按传感器名称对日志进行分组的方法(在创建我的自定义指标时)。因此,警报基于聚合计数(所有消息的总和,与特定传感器无关)触发。

例如:以下日志对象集的警报触发器,即使它们来自两个不同的传感器(这不是预期的)。

使用 cloudwatch 可以做到这一点吗?或者任何其他推荐的方法来做到这一点?

注意:公制过滤方法有效,但由于我们有 1000 个物联网设备,如果我们遵循这种方法,我们需要创建 1000 个公制过滤器。所以我正在寻找更好的方法。

0 投票
0 回答
31 浏览

mqtt - 将数据从 AWS Greengrass 发送到 AWS 云时的资源消耗

我目前正在开展一个项目,我们在边缘设备上使用 AWS IoT Greengrass 来测量来自机器的一些指标。我们运行了一个 Kinesis Analytics 应用程序来检测数据中的一些异常情况。我的问题是,我真的不知道如何有效地将数据发送到具有低内存食物印记的 aws 云。

当我使用IotDataClient(我们正在使用 pyhton)时,我在 greengrass sdk 中看到,每次调用都在publish内部调用 lambda 函数。我担心(我们需要以大约 500-1000 个数据点/秒的速度发送)这可能会杀死边缘设备并利用高 CPU 消耗。

另一种方法是使用StreamManager可能更适合大量数据的方法,但我不确定这是否有点矫枉过正,因为它为设备带来了一个 java 进程。此外,我无法发布到 MQTT,并且我绑定到 AWS Kinesis 或其他托管服务。

有没有人有通过 greengrass 将大量数据加载到 AWS 云的经验?

0 投票
1 回答
215 浏览

aws-iot - 我们可以为两个 AWS 区域使用相同的 AWS IOT 设备证书吗?

我曾尝试在两个 AWS 区域(斯德哥尔摩和伦敦)中使用相同的 AWS IOT 证书。但设备只能连接证书创建的区域(斯德哥尔摩)。

我们可以为两个 AWS 区域(属于单个账户)使用相同的 AWS IOT 设备证书吗?

脚步 :

  • 在斯德哥尔摩地区创建物联网设备证书
  • 下载证书(斯德哥尔摩地区)
  • 将下载的证书导入伦敦地区

这个旧线程(2016)说不允许将证书转移到不同的区域。但不确定现在有没有办法做到这一点。

0 投票
1 回答
51 浏览

aws-iot - 设备处于睡眠模式时的 AWS IoT 作业和 OTA 更新

如果我发送 OTA 更新并且设备处于深度睡眠模式会怎样?它立即唤醒,等待下一次唤醒然后自动运行,还是根本不运行?

0 投票
0 回答
22 浏览

amazon-web-services - 物联网核心和数据传输成本核算:Http 操作与 Vpc Apache Kafka 操作

AWS IoT Core 和数据传输费用:HTTP 规则操作与 VPC (Apache Kafka) 规则操作

使用 IoT Core,我们计划将从设备接收到的所有消息路由到我们的数据库中。一旦成功验证从 IoT Core 接收到的 POST 请求,将填充驻留在 EC2 实例中运行的同一 VPC(IoT Core)的数据库。(我们将其标记为模型 1)

根据此页面( https://aws.amazon.com/iot-core/pricing/additional-details/#Rules_Engine)“标准 EC2 数据传输” ,我想询问上述设置将产生的数据传输率费率应用于 HTTP 规则操作”。这是否意味着,给定上述模型,如果我们将 ipv4 地址分配给我们的 HTTP 规则操作,是否会产生数据传输成本?(在互联网上,ofc)

如果是这样,上述情况将属于此页面中的数据传输部分的哪个区域:https ://aws.amazon.com/ec2/pricing/on-demand/

・是否属于“从 Amazon EC2 向 Internet 传输数据”的类别,或者

・如果我们的 IoT Core 和 EC2 在同一区域和可用区内,我们是否有权获得以下条件:“在同一可用区内的 Amazon EC2、Amazon RDS、Amazon Redshift、Amazon ElastiCache 实例和弹性网络接口之间传输的数据是免费的。”

一般来说,有没有一种方法可以通过 PRIVATE 网络传输?如果我要从 IoT Core 的规则引擎向我们的 EC2 实例中的 Web API 服务发送 HTTP POST 请求,因为它们都在同一个 VPC 网络中?

​</p>

在查看我的系统后,我们查看了 IoT Core 中的另一种规则操作类型,“向 Apache Kafka 集群发送消息”,我将在 EC2 实例中设置一个自我管理的 Apache Kafka 集群(仍在同一个 VPC 中) )。我从那里开始思考,我可以在同一个 EC2 实例中使用并将消息转换到我们的数据库。(我们将其标记为模型 2)

从那个模型开始,不会有额外的数据传输费用吗?如果有,它将属于哪一类?我将按数据传输费用比较我的两个模型。

任何帮助是极大的赞赏!

0 投票
0 回答
75 浏览

mqtt - 如何处理 ESP32 上的 Mqtt Publish aws-iot 异常?

我在 aws 云(Iot-Core)中使用 ESP32,连接几个小时后,该设备根本无法再在 MQTT 主题中发布。我正在使用 Arduino IDE。我想知道如何在 ESP32 上映射发布/订阅错误以了解真正的原因以及如何处理它们。目前我正在重新启动设备,并且连接会继续工作一段时间。

0 投票
0 回答
39 浏览

android - 如何通过 X509 证书将 Android 应用程序连接到 AWS IotCore

我正在尝试通过 x509 证书连接 AwsIotCore 按照 java 应用程序的演示它没有问题但是当我拿起这段代码在 android 应用程序中使用时我的应用程序无法连接到 IotCore 我知道 AWS 建议使用 Cognito 池连接android 应用程序到 IotCore 那么,android 应用程序可以通过 x509 证书连接到 AWS IotCore 吗?如果答案是否定的,请告诉我为什么?

谢谢你的支持

0 投票
2 回答
380 浏览

amazon-web-services - 如何在 AWS IoT Core 中检查设备是否离线

检查 AWS IoT Core 事物是否仍处于离线状态的最佳实践是什么?

对于许多人来说,能够查询 AWS IoT 事物的状态将是其应用程序的重要组成部分。幸运的 AWS 有一个关于如何在此处获取生命周期事件的最佳实践: https ://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html

在文档中,有一节描述了如何处理生命周期事件,在这里他们提到在收到断开生命周期事件后,您应该等待一段时间,然后再检查设备是否仍处于离线状态。

当该消息可用并被处理(由 Lambda 或其他服务)时,您可以先检查设备是否仍处于离线状态,然后再采取进一步操作。

这里的问题是如何检查设备是否仍处于离线状态?

文档中建议的基础设施是订阅主题“$aws/events/presence/disconnected/clientId”的 IoT 规则,它将在 SQS 队列上创建一条消息。SQS 队列将使用该deliveryDelay属性延迟消息,然后 lambda 函数将使用该消息。正是在这个 lambda 函数中,我们应该检查设备是否仍然离线。

我可以简单地实现一个带有设备状态和时间戳的 dynamodb 表,每次发生连接或断开事件时都会立即更新该表。但是必须有更智能的方法来确定设备是否仍处于离线状态?