考虑到有大量移动设备(Android 和 iOS)需要通过 MQTT自定义授权器向 AWS-IoT 发送数据,以根据业务逻辑检查有效令牌,这将被实施。
参考具有 AWS IoT 和 Websockets 的 IoT 应用程序,幻灯片 56/60 显示了注册过程,其中 lambda 用于创建和附加策略。
这是否表明 lambda 将创建一个新的 AWS-IoT 设备并将策略附加到该设备?每次新用户注册时,这会导致创建新的 AWS-IoT 设备?
考虑到有大量移动设备(Android 和 iOS)需要通过 MQTT自定义授权器向 AWS-IoT 发送数据,以根据业务逻辑检查有效令牌,这将被实施。
参考具有 AWS IoT 和 Websockets 的 IoT 应用程序,幻灯片 56/60 显示了注册过程,其中 lambda 用于创建和附加策略。
这是否表明 lambda 将创建一个新的 AWS-IoT 设备并将策略附加到该设备?每次新用户注册时,这会导致创建新的 AWS-IoT 设备?
参考如何使用您自己的身份和访问管理系统来控制对 AWS IoT 资源的访问 ,您可以创建您的自定义授权方。完成后,您可以使用aws/aws-iot-device-sdk-js通过这段代码来测试授权方。
使用自定义授权者不需要您创建或在您的帐户中注册任何东西。
根据 AWS 的 IoT 定价,您需要为连接、消息等付费。
然而,这是一个 mqtt over wss 实现,而不是一个 mqtt 唯一实现。到目前为止,仅 mqtt 的实现似乎在连接到 AWS-IoT 代理期间仍需要证书。
要扩展 user2967920 的答案:
有关在 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 一样。