如何知道正在执行的sam / cloudformation堆栈lambda

时间:2019-02-21 03:19:49

标签: amazon-web-services aws-lambda amazon-cloudformation

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

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

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

我知道我可以通过控制台设置环境变量,但是我希望将其尽可能保留在模板中。我看不出将其整合到模板中的好方法。

1 个答案:

答案 0 :(得分:2)

我这样做的方法是以这种方式将堆栈名称作为ENV变量传递给Lambda函数:

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

它使用SAM的Globals部分(因此在模板中的所有Lambda上都设置了环境),并结合了Cloudformation's Pseudoparameters