从 Lambda 函数内部访问 AWS CloudFormation ARN

Posted

技术标签:

【中文标题】从 Lambda 函数内部访问 AWS CloudFormation ARN【英文标题】:Access AWS CloudFormation ARN from inside Lambda Function 【发布时间】:2016-04-08 15:53:49 【问题描述】:

我有两个 Lambda 函数 Lambda1 和 Lambda2。 Lambda1 做一些工作,并通过一个名为 Topic1 的 SNS 主题向 Lambda2 发送多个结果。然后 Lambda2 处理 Lambda1 的结果。

Lambda1 -> Topic1 -> Lambda2

这一切都很好,直到我尝试构建一个代表它的 CloudFormation 模板。我可以为 Lambda2 订阅 Topic1,但是如何告诉 Lambda1 将消息推送到哪个 SNS 主题?毕竟在创建 CloudFormation 堆栈之前不会创建主题 ARN。

【问题讨论】:

【参考方案1】:

您可以使用单个 CloudFormation 堆栈来创建此场景。您的堆栈的输出可用于配置堆栈中创建的Lambda 1 以访问Topic 1,您只需授予您的Lambda cloudformation:DescribeStacks 权限,然后从您的Lambda 代码访问您的堆栈输出。

【讨论】:

谢谢。我还没有将其标记为正确答案,因为我还没有时间尝试。不过看起来不错。 是的,就是这样。我创建了堆栈,从 cloudformation::DescribeStacks 获取 ARN(实际上是 boto3.resource('cloudformation').StackResource),将 ARN 存储在 S3 存储桶中,并让 lambda 函数从那里加载 ARN。

以上是关于从 Lambda 函数内部访问 AWS CloudFormation ARN的主要内容,如果未能解决你的问题,请参考以下文章

aws lambda函数调用内部负载均衡器

aws 如何从生产环境中的 lambda 函数访问 ECS 服务

AWS Cloud9:在本地引用 Lambda 层

AWS Cloud9:一次只部署一个 Lambda 函数

从 AWS lambda 函数访问 Parameter Store 字符串时出错

AWS Lambda 内部的 Parameter Store 请求超时