0

我们在 Chalice 中实现了几乎所有的 lambda,然后在 CDK 项目中使用它们,如此处所述

我需要向堆栈中的所有 lambda 添加相同的环境变量(每个开发人员不同)。我想自动完成,而不是指望每个开发人员都将变量添加到 Chalice 阶段配置。我不能使用 AWS Systems Manager Parameter Store,因为它对所有开发堆栈都是一样的——我们共享同一个 AWS 账户。我可以在部署之前解析最终的 cloudformation 模板并将变量添加到所有 lambda,但可能有更优雅的方法吗?

谢谢你。

4

1 回答 1

2

你应该看看Aspects

方面是将操作应用于给定范围内的所有构造的方式。该功能可以修改构造,例如通过添加标签,或者它可以验证有关构造状态的某些内容,例如确保所有存储桶都已加密。

@jsii.implements(core.IAspect)
class EnvVarSetter:

  def visit(self, node):
    # See that we're dealing with a Function
    if isinstance(node, lambda.Function):
      # set env var here
      node.add_environment('KEY', 'VALUE')

# Apply to the stack
stack.node.apply_aspect(EnvVarSetter())
于 2020-02-19T15:56:38.820 回答