- 我正在从 AWS IoT 调用 AWS Lambda 函数。
- 我正在用 Java 编写我的 Lambda 函数
- 根据此链接http://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html?shortFooter=true,它说:规则引擎 - 提供消息处理和与其他 AWS 的集成服务。您可以使用基于 SQL 的语言从消息负载中选择数据、处理数据并将数据发送到其他服务,例如 Amazon S3、Amazon DynamoDB 和 AWS Lambda。您还可以使用消息代理将消息重新发布给其他订阅者。
- 所以这个链接清楚地表明我的 lambda 函数不需要订阅它,它可以获取消息有效负载数据。
- 处理函数的工作原理是您传递输入和输出类型,在我的情况下,输入类型是我想从我的 IoT 主题发送的信息,例如“IoTEvent”(类似于 S3Event、SNSEvent 等)。
- 从https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-events/src/main/java/com/amazonaws/services/搜索所有可用的事件类lambda/runtime/events,我找不到物联网的事件类。
- 我想了解有关支持获取有效负载的所有方法的类的信息。
问问题
872 次
1 回答
1
没有通用的 IoTEvent。有效负载将以 JSON 格式发送到 lambda。因此,在您的 lambda 中创建一个 POJO 类,其变量与有效负载相同。使用您的 POJO 类作为 Lambda 函数的输入。AWS Lambda 会自动将 JSON 有效负载映射到您的 POJO 类。检查此链接以使用 POJO 进行 Lambda 输入。https://docs.aws.amazon.com/lambda/latest/dg/java-handler-io-type-pojo.html
这是我能够使用 Java Lambda 完成这项工作的唯一方法。只需确保 JSON 和 POJO 匹配即可。
于 2018-02-16T16:13:29.613 回答