我无法从Lambda向SQS队列发送消息 功能。这是我的设置
我正在尝试使用以下命令通过boto3发送消息:
import json
import boto3
sqs = boto3.client("sqs")
sqs.send_message(
QueueUrl="https://sqs.eu-west-1.amazonaws.com/012345678901/my_queue",
MessageBody=json.dumps({"message": "hello"}),
)
lambda超时(60秒)。在调试时,我注意到boto3
客户端正在连接到eu-west-1.queue.amazonaws.com
而不是
sqs.eu-west-1.amazonaws.com
,我在QueueUrl参数中指定。
通过进一步的调试,我发现eu-west-1.queue.amazonaws.com
决定在Lambda中进行公开演讲,而
sqs.eu-west-1.amazonaws.com
解析为私人地址。我不
了解为什么会这样。
答案 0 :(得分:1)
我在GitHub上问了同样的问题,因此感谢swetashre在这里回答我。事实证明,创建SQS客户端时需要指定终结点URL。
sqs = boto3.client("sqs", endpoint_url="https://sqs.eu-west-1.amazonaws.com")