如何知道 sam/cloudformation 堆栈 lambda 正在执行啥
Posted
技术标签:
【中文标题】如何知道 sam/cloudformation 堆栈 lambda 正在执行啥【英文标题】:How to know what sam/cloudformation stack lambda is executing in如何知道 sam/cloudformation 堆栈 lambda 正在执行什么 【发布时间】:2019-07-14 20:58:00 【问题描述】:我有一个用于管理堆栈的 sam/cloudformation 模板。我在多个堆栈中使用相同的 sam/cloudformation 模板。
例如,我有一个开发堆栈和一个产品堆栈。我们有 git 和 CI 可以根据分支更新相应的堆栈。
我的问题是,我如何知道我的 lambda 函数在哪个堆栈/上下文中运行?这对于配置数据库端点很有用。
我知道我可以通过控制台设置环境变量,但我希望尽可能将其保留在模板中。我没有看到将其合并到模板中的好方法。
【问题讨论】:
不清楚您所说的“我的 Lambda 函数”是什么意思。显然,您可以通过查看 Cloudformation 中的资源部分来查看包括 Lambda 函数在内的所有资源。 @AlexHarvey 我想我的意思是我的代码如何知道它在哪个 lambda 函数中运行?两个堆栈使用相同的代码 【参考方案1】:我这样做的方法是将堆栈名称作为 ENV var 传递给 Lambda 函数:
Globals:
Function:
Environment:
Variables:
STACK_NAME: !Ref AWS::StackName
它使用 SAM 的 Globals 部分(因此在模板中的所有 Lambda 上设置环境),并结合 Cloudformation's Pseudoparameters。
【讨论】:
感谢您的建议!在阅读了有关环境变量的内容后,我还找到了一篇相关的帖子。看起来您实际上可以使用 deploy cli 命令***.com/questions/51439163/… 设置这些以上是关于如何知道 sam/cloudformation 堆栈 lambda 正在执行啥的主要内容,如果未能解决你的问题,请参考以下文章