-
我正在从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函数不需要订阅它,它可以获取消息有效负载数据 .
-
处理函数如何工作是你传递输入和输出类型,在我的情况下输入类型是我想从我的物联网主题发送的信息,例如"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中可用的所有事件类时,我找不到IoT的事件类 .
-
我想获得有关支持获取有效负载的所有方法的类的信息 .
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匹配即可 .