问题标签 [aws-iot]

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 回答
2932 浏览

amazon-web-services - AWS IoT 设备网关是 MQTT 代理吗?

我正在尝试了解 Amazon AWS IoT,我看到传感器/执行器和 AWS(规则引擎)之间连接了一个设备网关。我了解传感器/执行器是可以发布/订阅主题的 MQTT 客户端。

设备网关还支持发布/订阅模式,这意味着

设备网关也是 MQTT 客户端?

那么 MQTT 代理在哪里呢?

或设备网关是 AWS-IoT 服务的代理 + 通信接口?

我在 AWS IoT 上附加了一个 Image Amazon 演示文稿以供参考:

在此处输入图像描述

0 投票
1 回答
949 浏览

openssl - 如何创建与 AWS IoT 兼容的 X.509?

我正在尝试创建自签名 X.509 证书以在 AWS IoT 中使用。我可以理解它与普通的 OpenSSL 证书没有什么不同,但我偶然发现 AWS 创建的 PEM 文件有所不同。由于我是 OpenSSL 的新手,我无法弄清楚我缺少什么

我使用以下命令创建私钥、CSR 和服务器证书

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt

如果我在 AWS IoT 控制台中上传 csr.pem,它会接受,但我无法使用此文件连接 MQTT。

如果我在 AWS IoT 中上传 server.crt,它会抱怨它不是 CSR 格式,这是可以理解的。

令我惊讶的是,一旦我在 AWS IoT 控制台中上传 csr.pem,我就可以从控制台下载文件 xxxx.pem.crt。当我用来连接到 MQTT 时,这个文件可以完美运行。我不确定如何创建此文件。

我的用例是不依赖 AWS 来生成这个文件。

参考: http ://docs.aws.amazon.com/iot/latest/developerguide/identity-in-iot.html

0 投票
1 回答
157 浏览

aws-iot - 在 AWS IOT 规则中,我将如何查询元数据以使其显示在结果中

我已经尝试了几种不同的组合来查询元数据(特别是时间戳)并且出现了空白。唯一有效的是 SELECT * 我真的不想这样做。是否可以选择元数据?

我希望有类似的东西

但这不起作用......有什么想法吗?

0 投票
1 回答
1707 浏览

ios - 在 iOS 中连接 AWS IoT 代理

我们正在开发一个需要使用基于 MQTT 协议偏差的 AWS IoT 服务的应用程序。我们目前面临与 AWS IoT 云服务器提供的 MQTT 代理连接的问题。

以下是环境:

  1. iOS 版本:8.0 / 9.0
  2. 编程语言:斯威夫特
  3. MQTT 库:Moscapsule

后续步骤:

  1. 设置初始配置 clientid, host, port
  2. 使用私钥设置客户端证书,提供 .pem 文件路径(例如 cert.pem、privateKey.pem)
  3. 设置服务器证书,即根证书 .pem 文件路径(例如 rootCA.pem)
  4. 使用 tsl_insecure: false, cert_reqs: SSL_VERIFY_PEER, tls version: tlsv1.2, ciphers: nil 设置 tls opts

面临的问题:

  1. 尝试连接到服务器/代理时出现错误“无法创建 TLS_Context”。
  2. 通过设置 tls cert_reqs: SSL_VERIFY_NONE,通过订阅和发布成功提供连接状态成功,但不会反映在服务器或代理上。

在这方面的任何帮助都是非常可观的。

0 投票
1 回答
480 浏览

node.js - 无法使用 browserify 要求('aws-iot-device-sdk')。

嗨,我们无法在 nodejs 应用程序中使用 browserify 使用 require('aws-iot-device-sdk'),错误如下 -

来自 bundle.js

0 投票
2 回答
556 浏览

amazon-web-services - 将设备状态的副本保存在事物影子和 DynamoDB 之类的数据库中是否是最佳实践?

将设备影子的副本保留在 DynamoDB 等数据库中是最佳实践吗?

  • 当我们必须查询聚合的设备数据时,这将很有帮助。例如。“给我所有 state='ON' 的设备”
  • 这里的问题是同步设备影子和数据库中的数据副本

对此有何建议?</p>

0 投票
2 回答
6466 浏览

amazon-web-services - 基于 WebSocket 协议的 AWS IoT MQTT

我一直在关注 AWS IoT 文档,尝试开始使用 http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#mqtt-ws上的 MQTT 教程 来设置 WebSocket 连接到Web 应用程序中的 AWS IoT。第一步是通过向按照教程中的步骤创建的端点发出 GET 请求来启动 WebSocket 连接,但我收到此错误:

XMLHttpRequest cannot load <my endpoint> Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

我想知道是否有人遇到过这个错误,如果是,他们是如何解决的?

这是代码的链接https://github.com/dwyl/learn-aws-iot/blob/2c8035728ec8228e296580c8714f3f7ace870fbe/src/js/components/App.js

0 投票
4 回答
11841 浏览

amazon-web-services - AWS IOT - 凭证的范围应适用于正确的服务

我正在尝试访问一个简单的 AWS IOT REST 服务,但还没有成功。这就是我所做的。

  1. 我在我的 aws 中创建了一个 iam 用户并下载了访问密钥和密钥
  2. 使用该用户登录 AWS IOT 并创建了一个“事物”
  3. 从事物的属性中,我找到了阴影的 REST URL
  4. 使用具有新“aws 签名”功能的 Postman,并为其提供访问密钥、密钥、区域 (us-east-1) 和服务名称 (iot)
  5. 试图“获取”端点,这就是我得到的 -

    { "message": "Credential should be scoped to correct service. ", "traceId": "be056198-d202-455f-ab85-805defd1260d" }

  6. 我认为邮递员有问题,所以我尝试使用连接到 S3 的 aws-sdk-sample 示例并将其更改为连接到 IOT URL。这是我的程序片段(Java)

    /li>

这给了我同样的错误-

有人可以告诉我我做错了什么吗?AWS 文档没有关于此错误的太多信息。请帮忙

0 投票
4 回答
13894 浏览

node.js - 如何使用 AWS IoT 向/从 Web 浏览器发送/接收消息

我们正在尝试使用亚马逊网络服务物联网 (AWS IoT) 从/向网络浏览器发送消息(例如:。鉴于 AWS IoT 支持 JavaScript,我们希望这是可能的......

我们在 AWS IoT 文档中进行了搜索,但只找到了服务器端示例 (暴露了 AWS 机密/密钥......)

是否有使用 AWS IoT 在浏览器中通过 WebSockets/MQTT 发送/接收消息的好的工作示例或教程(例如:使用 AWS Cognito 进行身份验证)?谢谢!

0 投票
1 回答
232 浏览

http - 通过 HTTP(S) 与设备通信时,AWS IoT 设备影子能否正常工作?

AWS IoT 引入的“设备影子”概念非常适合设备间断连接的情况。

然而,这似乎需要设备订阅来自远程“云”节点(AWS IoT)的消息。对于 MQTT 协议来说,这似乎是一项简单的任务,因为它是设备和远程节点之间的一种“始终在线”连接,而 MQTT 用于在两者之间主动推送消息。

但是,当使用始终打开/关闭连接的 HTTP 时,我仍然可以使用设备阴影吗?似乎在 HTTP 的情况下,很难“订阅”来自远程节点的消息......