无法通过Lambda函数将MQTT消息发布到连接到VPC的AWS IoT Core。使用VPC终端节点需要连接到IoT core并发布消息。

0

【以下的问题经过翻译处理】 我创建了一个Lambda函数,该函数连接到具有两个私有子网的VPC。我们需要在不使用Nat网关的情况下创建Lambda函数并向IoT core发布mqtt消息。 我们已将VPC端点配置为AWS iot core。创建了私有托管区域,但没有用,我们收到了超时任务的错误信息。

以下是我们用于发布到mqtt的代码:

import json
import boto3

client = boto3.client('iot-data', region_name='*******')

def lambda_handler(event, context):
    print(event)
    # TODO 实现
    # 更改主题、质量服务和有效载荷
    response = client.publish(
        topic='esp32/sub',
        qos=1,
        payload=json.dumps({"foo":"bar"})
    )
    print(response)
    
    return {
        'statusCode': 200,
        'body': json.dumps('已发布到主题')
    }
profile picture
专家
已提问 6 个月前15 查看次数
1 回答
0

【以下的回答经过翻译处理】 我在AWS CLI中的EC2环境中尝试了一下。

看起来它正在尝试连接到“数据端点”而不是“数据-ats端点”。

但VPC端点仅提供对ats-data的支持。 https://docs.aws.amazon.com/iot/latest/developerguide/IoTCore-VPC.html

通过显式指定端点,我能够正确地发布。

我没有使用boto3尝试,但如果您指定一个端点,应该也会生效。

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则