【问题标题】:Publishing to an topic on AWS iot from lambda function [Java]从 lambda 函数发布到 AWS iot 上的主题 [Java]
【发布时间】:2019-11-04 00:11:24
【问题描述】:

我正在尝试通过我的 lambda 函数在我的 AWS IoT 上发布一个主题,该函数由 alexa 技能触发。哪一类AWSClient 适合这样做?

根据 stackoverflow 上的答案,我知道我需要使用 HTTP 方法从 aws lambda 函数发布到 aws iot,而不是 MQTT。由于AWSIotDataClient 类已弃用,我不知道要使用哪个类。 AWS 建议使用AwsIotClientBuilder,我这样做了,但现在怎么办?

    AWSIotClientBuilder client =  AWSIotClientBuilder.standard();
    client.setEndpointConfiguration(conf);
    client.setCredentials(new AWSCredentialsProvider() {
        @Override
        public AWSCredentials getCredentials() {
            return cred;
        }

        @Override
        public void refresh() {

        }
    });

【问题讨论】:

    标签: java amazon-web-services aws-lambda aws-iot


    【解决方案1】:

    AWSIotDataClient 没有被弃用,只是构造函数被弃用,所有AWSClient 实现的构造函数都被弃用,支持构建器。您应该使用AwsClientBuilder.build() 来获取AWSIotDataClient 的实例。然后,您可以在 AWSIotDataClient 实例上调用 publish() 方法以发布到您的 IoT 主题。

    【讨论】:

    • 感谢您的澄清。如果我想让 AWSIotDataClient 发布到 IoT,我需要 AWSIotDataClientBuiler,对吗?我的问题是,当我想 build() AWSIotDataClientBuilder 时,我收到此方法返回 AWSIotData 的错误;这是一个由 AWSIotDataClient 实现的接口,我需要转换它吗?还有一个问题:我是把这个客户端的东西单独放在每个 IntentHandler 类中还是放在 StreamHanler 类中?
    • 对于第一个问题,AWSIoTData 有一个publish() 方法,无需转换,只需使用接口即可。
    • 感谢您的帮助。请问您是否有某种示例代码。我一直在寻找几天,但没有找到任何有帮助的东西。我还有一个问题,一旦我添加了 aws-core 或 aws-iot 的 maven 依赖项并将 jar 上传到 lambda,我就会收到一个端点错误。即使我不接触所有依赖项的代码也会发生这种情况,足以让一切崩溃
    【解决方案2】:
    AWSIotData awsIotDataClient = AWSIotDataClientBuilder.defaultClient(); // add your AWS creds to environment vars to test locally
    
        awsIotDataClient.publish(new PublishRequest()
                                         .withPayload(ByteBuffer.wrap(("{\"some\":\"message\"}").getBytes()))
                                         .withQos(1)
                                         .withTopic("your/topic"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-04
      • 2017-02-22
      • 1970-01-01
      • 2020-05-09
      • 2018-10-01
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多