Amazon web services 如何知道sam/cloudformation堆栈lambda在执行什么

Amazon web services 如何知道sam/cloudformation堆栈lambda在执行什么,amazon-web-services,aws-lambda,amazon-cloudformation,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我有一个sam/cloudformation模板,用于管理我的堆栈。我在多个堆栈中使用相同的sam/cloudformation模板 例如,我有一个dev堆栈和一个prod堆栈。我们有git和CI,它们根据分支更新相应的堆栈 我的问题是,如何判断lambda函数运行在哪个堆栈/上下文中?这对于配置DB端点很有用 我知道我可以通过控制台设置环境变量,但我希望尽可能将其保留在模板中。我认为没有一个好方法可以将其合并到模板中。我这样做的方法是将堆栈名作为ENV var传递给Lambda函数: Glob

我有一个sam/cloudformation模板,用于管理我的堆栈。我在多个堆栈中使用相同的sam/cloudformation模板

例如,我有一个dev堆栈和一个prod堆栈。我们有git和CI,它们根据分支更新相应的堆栈

我的问题是,如何判断lambda函数运行在哪个堆栈/上下文中?这对于配置DB端点很有用


我知道我可以通过控制台设置环境变量,但我希望尽可能将其保留在模板中。我认为没有一个好方法可以将其合并到模板中。

我这样做的方法是将堆栈名作为ENV var传递给Lambda函数:

Globals:
  Function:
    Environment:
      Variables:
        STACK_NAME: !Ref AWS::StackName

它使用SAM的部分(因此在模板中的所有Lambda上设置环境),并结合。

不清楚您所说的“我的Lambda函数”是什么意思。显然,通过查看Cloudformation中的resources部分,您可以看到包括Lambda函数在内的所有资源。@AlexHarvey我想我的意思是,我的代码如何知道它运行在哪个Lambda函数中?两个堆栈使用相同的代码谢谢你的建议!在阅读了有关环境变量的文章后,我还发现了一篇相关的帖子。看起来您实际上可以使用deploycli命令设置这些