1

考虑到有大量移动设备(Android 和 iOS)需要通过 MQTT自定义授权器向 AWS-IoT 发送数据,以根据业务逻辑检查有效令牌,这将被实施。

参考具有 AWS IoT 和 Websockets 的 IoT 应用程序,幻灯片 56/60 显示了注册过程,其中 lambda 用于创建和附加策略。

这是否表明 lambda 将创建一个新的 AWS-IoT 设备并将策略附加到该设备?每次新用户注册时,这会导致创建新的 AWS-IoT 设备?

4

2 回答 2

1

参考如何使用您自己的身份和访问管理系统来控制对 AWS IoT 资源的访问 ,您可以创建您的自定义授权方。完成后,您可以使用aws/aws-iot-device-sdk-js通过这段代码来测试授权方。

  • 使用自定义授权者不需要您创建或在您的帐户中注册任何东西。

  • 根据 AWS 的 IoT 定价,您需要为连接、消息等付费。

然而,这是一个 mqtt over wss 实现,而不是一个 mqtt 唯一实现。到目前为止,仅 mqtt 的实现似乎在连接到 AWS-IoT 代理期间仍需要证书。

于 2019-01-29T04:28:01.310 回答
0

要扩展 user2967920 的答案:

  1. 使用 AWS IoT Core 时无需创建设备。AWS Amplify PubSub 实际上使用 IoT 作为通用 MQTT 代理。使用自定义授权器*不会创建任何设备。
  2. 您的自定义授权方返回的策略不会保留。将其视为为特定连接创建的动态临时策略。

有关在 Android 和 iOS 上使用 AWS IoT 的示例,请查看AWS Amplify PubSub(内部使用 AWS IoT Core)的文档。在 iOS 上:

iotDataManager.connectUsingWebSocket(withClientId: uuid,
                                     cleanSession: true,
                                     customAuthorizerName: "<name-of-the-custom-authorizer>",
                                     tokenKeyName: "<key-name-for-the-token>",
                                     tokenValue: "<token>",
                                     tokenSignature: "<signature-of-the-token>",
                                     statusCallback: mqttEventCallback)

*显然,如果您愿意,您可以在 lambda 函数中创建设备,就像您可以使用任何其他 AWS API 一样。

于 2022-01-31T14:58:45.840 回答