从lambda函数[Java]发布到有关AWS iot的主题

时间:2019-06-21 07:00:30

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

我正在尝试通过alexa技能触发的lambda函数发布有关AWS Iot上的主题。哪个类别的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() {

        }
    });

2 个答案:

答案 0 :(得分:0)

AWSIotDataClient不被弃用,只是不推荐使用构造函数,而所有AWSClient实现的构造函数也被弃用。您应该使用AwsClientBuilder.build()获取AWSIotDataClient的实例。然后,您可以在publish()实例上调用AWSIotDataClient方法以发布到您的IoT主题。

答案 1 :(得分:0)

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"));