将新的输出和资源添加到现有的AWS CloudFormation堆栈

时间:2020-03-14 21:24:48

标签: node.js amazon-web-services yaml amazon-cloudformation aws-serverless

我们以前有一个包含一些资源和输出的堆栈,我们想添加新资源,但是当我们添加一个引用新堆栈输出的新环境变量并尝试使用无服务器进行部署时,我们发现:

无服务器部署--stage Zzzz

Trying to request a non exported variable from CloudFormation. Stack name: "Xxxx-Cognito-Zzzz" Requested variable: "MyNewVariable".

我有以下.yml:

environment:
    MY_NEW_ENVIRONMENT_VARIABLE: ${cf:${self:custom.serviceName}-Cognito-${self:custom.stage}.MyNewVariable}

1 个答案:

答案 0 :(得分:1)

在CloudFormation控制台中:

  • 选择您需要更新的堆栈。
  • 点击更新操作
  • 选择当前模板
  • 使用新的配置env变量(或其他任何设置,例如实例大小)更新模板
  • 更新云层设置。

现在转到您的EC2仪表板:(请特别注意,特别是在生产环境中)

  • 选择由云形成堆栈创建的实例并终止它。
  • 过一会儿您将看到具有更新后的配置的新实例生成。这应该有您的env变量。

注意:建议在云形成堆栈中至少包含2个实例,以免在生产环境中出现停机。删除实例后,流量将迁移到另一个实例,直到产生新实例并达到稳定状态为止。完成此操作后,另一个实例也可以终止,以便也可以替换它。