【问题标题】: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 函数中运行?两个堆栈使用相同的代码

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


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的建议!在阅读了有关环境变量的内容后,我还找到了一篇相关的帖子。看起来您实际上可以使用 deploy cli 命令stackoverflow.com/questions/51439163/… 设置这些
猜你喜欢
  • 2022-01-27
  • 2016-07-17
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 2022-01-16
  • 2020-06-15
  • 2021-07-20
相关资源
最近更新 更多