如何在 Lambda 中引用通过 SAM 创建的 AWS 资源?
How to reference an AWS resource created via SAM in a Lambda?
我正在尝试写入我在与我的 lambda 相同的 SAM 模板中创建的 SQS 队列。要向队列发送消息,我需要 URL。
client.send_message(QueueUrl='string', MessageBody='string', ...)
如果我有队列名称 (client.get_queue_url(QueueName='string', QueueOwnerAWSAccountId='string')
),我可以获得 URL,但这是在 SAM 部署时随机生成的。对于函数,您可以在 template.yaml 中指定 FunctionName,但我还没有为队列找到这样的示例。
我知道在 template.yaml 中我可以使用 !Ref MyQueue
但我不知道在 lambda 中使用等效项。我假设有一个技巧,我只是不知道那个技巧:)
您可以将队列 URL 作为环境变量传递给 lambda。这允许您在模板中使用 !Ref MyQueue
来引用队列。只需将其添加到 lambda 配置的 Environment
-> Variables
部分。
我正在尝试写入我在与我的 lambda 相同的 SAM 模板中创建的 SQS 队列。要向队列发送消息,我需要 URL。
client.send_message(QueueUrl='string', MessageBody='string', ...)
如果我有队列名称 (client.get_queue_url(QueueName='string', QueueOwnerAWSAccountId='string')
),我可以获得 URL,但这是在 SAM 部署时随机生成的。对于函数,您可以在 template.yaml 中指定 FunctionName,但我还没有为队列找到这样的示例。
我知道在 template.yaml 中我可以使用 !Ref MyQueue
但我不知道在 lambda 中使用等效项。我假设有一个技巧,我只是不知道那个技巧:)
您可以将队列 URL 作为环境变量传递给 lambda。这允许您在模板中使用 !Ref MyQueue
来引用队列。只需将其添加到 lambda 配置的 Environment
-> Variables
部分。