从 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 函数访问 ECS 服务