如何在Lambda中引用通过SAM创建的AWS资源?

时间:2020-03-05 16:48:47

标签: python aws-lambda aws-serverless

我正在尝试写入在与lambda相同的SAM模板中创建的SQS队列。要将消息发送到队列,我需要URL。

client.send_message(QueueUrl='string', MessageBody='string', ...)

如果我有队列的名称(client.get_queue_url(QueueName='string', QueueOwnerAWSAccountId='string')),我可以获取URL,但这是由SAM部署时随机生成的。对于功能,可以在template.yaml中指定FunctionName,但是我还没有为Queue找到这样的示例。

我知道在template.yaml中可以使用!Ref MyQueue,但是我不知道在lambda中使用的等效项。我认为这是一个把戏,我只是不知道那个把戏:)

1 个答案:

答案 0 :(得分:1)

您可以将队列URL作为环境变量传递给lambda。这样,您就可以在模板中使用!Ref MyQueue来引用队列。只需将其添加到lambda配置的Environment-> Variables部分即可。