问题标签 [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 投票
0 回答
36 浏览

publish-subscribe - 当 IoT Core shadow 的属性被删除(设置为 null)时,客户端应该订阅哪个主题?

我需要将本地设备的设置与服务器的设置同步。

我正在使用事件:/update/delta

但是,如果我将 null 设置为 shadow 属性,它将不起作用。例如:“名称”:空。在设备端没有触发此更改。

您能指出客户应该订阅哪个主题吗?

P/S:客户端使用 AWS Android SDK

谢谢,

0 投票
2 回答
204 浏览

flutter - 如何使用证书从 Flutter 应用程序发送 AWS iot http 请求?

我正在尝试使用颤振应用程序向 AWS IoT 发布消息。

根据 AWS 的文档,我尝试复制

这是我尝试过的

在第一次 api 调用时,http 调用成功但响应为{"message":"Missing authentication","traceId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"}

在随后的每次调用中,flutter 都会引发此错误:

关于如何让它工作的任何想法?

--编辑部分:第一次通话问题已解决,添加了context.setAlpnProtocols(["x-amzn-http-ca"], false);魅力。后续调用问题依然存在。

0 投票
0 回答
220 浏览

c++ - 用于 armv7l 的 aws-iot-device-sdk-cpp-v2 交叉编译问题

我下载了aws-iot-device-sdk-cpp-v2存储库,并使用以下脚本为 x86_64 编译:

现在我正在尝试使用此脚本(使用已创建的工具链)为 armv7l 架构交叉编译它:

我得到了这个输出:

0 投票
0 回答
71 浏览

amazon-web-services - 如何自动化认证连接到 AWS IOT Core 的设备的过程 - JITR

我的目标是建立一个物联网解决方案,我有device -> AWS IOT Core(mqtt) -> AWS IOT Analytics -> WebApplication (Dashboard)

我的问题与这个阶段有关device -> AWS IOT Core(mqtt),有没有办法自动化验证设备以访问 AWS IoT Core 的过程?

通过一些搜索,我发现有一种叫做即时注册 (JITR) 的东西用于激活设备证书。我看了一下博客(https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/)。

我想知道 JITR 如何帮助我实现流程自动化?我会使用 SDK 创建证书并对其进行签名吗?这篇文章对我来说太模糊了,我是 AWS 的初学者。

0 投票
0 回答
31 浏览

amazon-cognito - 如何使用 AWS Android SDK 在 android 应用程序中获取登录用户的事物列表

如何从 AWS IoT 核心获取 android 应用程序中登录用户的所有事物(设备)?

如何在 AWS 控制台中手动创建的东西与在 AWS 中注册 Cognito 服务的特定用户建立连接?

0 投票
0 回答
38 浏览

android - 如何将通过应用程序注册的“用户池”(Cognito 服务)中的用户与手动创建的事物(物联网核心服务)相关联?

我试图弄清楚如何将在 AWS IoT 核心控制台中创建的事物(虚拟设备)附加到特定用户?或如何通过 android 应用程序获取事物列表?我目前使用“AWSMobileClient.getInstance()”对象来执行我的所有操作,例如:注册/登录和 MQTT 连接。

0 投票
0 回答
40 浏览

c++ - 使用 C++ 中的 mosquitto 将消息连接并发布到 AWS 端点

我正在尝试执行这段代码以连接到 AWS 端点并使用 mosquitto 库发布消息:

似乎它已连接(在我的真实代码中,我检查了返回码以检查连接或发布期间是否发生任何错误,并且连接期间没有问题)。

但是,当发布消息时,AWS 代理中没有收到这些消息(经过一些尝试,连接似乎关闭了,因为publish函数返回错误 4 - MOSQ_ERR_NO_CONN-)。

我还尝试使用 CLI 命令mosquitto_pub

知道我做错了什么吗?

0 投票
0 回答
58 浏览

reactjs - Amazon AWS IoT Amplify:无法建立与 IoT 核心的连接

新手来了 我正在使用 pub sub 功能完成本教程 aws-amplify-react-template 的所有步骤,但它似乎没有成功。我每次都收到“发布者状态:未连接”。

带有注册退出的放大部分工作正常,身份池已成功创建到我的 aws 帐户,我制定了策略并提供了与 cognito 身份池中的相关身份验证角色相同的完整 iot 权限广告,但似乎即使删除了 iot 权限,它也不会改变任何东西(就像它根本没有进入寻找它们的步骤)。

我在控制台中没有收到任何错误消息,只是每 8 秒(如代码中所示)它无法建立连接的信息。

如果我更改了区域或端点,我得到一个错误,这意味着它已经验证我放置了正确的。

0 投票
0 回答
61 浏览

amazon-web-services - 如何使用 AWS Cognito 在 AWS IOT 中指定事物的所有权

我正在学习 AWS IOT,我觉得我缺少一些非常基本的东西。

假设我想利用 AWS Cognito 作为我在网站上的身份提供者,并且我想创建注册用户“拥有”的事物。我想确保用户只能发布带有一些识别信息的主题,并且设备只能订阅其所有者发送的消息。我还希望能够列出某个用户拥有的所有事物。

我在想我可以使用“clientId”变量创建发布策略,并将 Sub 或用户名作为客户端 ID 发送。当我注册设备时,我必须使用硬编码的 Sub 或用户名进行订阅。这样做的问题是我宁愿使用可以过期的访问令牌,而且我认为 sub 对于授权来说不够安全。如果用户授权是由政策驱动的,我也不知道如何查询该用户拥有的所有事物。

另一种可能的解决方案是使用 DynamoDB,它可以解决列出特定用户拥有的所有设备的问题,但我仍然想使用策略,以便浏览器可以直接发布并且事物可以订阅他们的主题,并且只订阅他们在 AWS IOT 中的主题,而无需必须在 Lambda 上重新创建身份验证。

任何人都可以分享任何见解或指导我查看他们解决此问题的文档吗?

编辑:

我正在创建 Cognito Auth 和 Unauth 角色,我可以创建一个策略,允许 authed 角色使用角色策略连接/发布/订阅。但是,目前它对所有经过身份验证的用户都是全局的,因为该策略归因于身份验证角色而不是特定用户。我想知道如何隔离发布和订阅用户,以便他们只能发布/订阅他们拥有的东西。

我想到的解决方案是:

  1. 使用 DynamoDB 存储用户 -> 设备关系
  2. 在 Cognito 发布确认 lambda 中注册后,我可以调用 apply-policy 以使用 Cognito 身份 ID 更新 IOT 用户,并且只允许在 {cognitoID}/* 上发布/订阅主题
  3. 以某种方式使用拥有设备的用户的 Cognito ID 更新设备,以便事物可以发布和订阅 {cognitoID}/* 上的主题
0 投票
1 回答
294 浏览

python - AWS IoT Core:能够从设备连接到 AWS,但已发布的消息未显示在控制台中并且订阅主题无限期挂起

物联网核心非常新。所以我基本上只是重新利用 AWS SDK 示例 pubsub.py 代码(https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/pubsub.py)但是出于某种原因,即使我可以建立与 AWS 的连接,我也无法:

  • 订阅主题

执行时iot_connection.subscribe(),终端会显示“Subscribing to topic test/topic...”并无限期挂起。请注意,如果我不包含subscribe_result = subscribe_future.result()下面的完整代码,则会成功执行,但同样,控制台中不会收到任何消息。附带问题:您实际上必须订阅一个主题才能发布到它吗?

  • 在控制台中查看消息

执行时iot_connection.publish(),一切似乎都已成功运行,但是,AWS 测试控制台中未显示“Hello, World”,即使我订阅了“#”和“test/topic”。

任何帮助将非常感激!

代码: