【发布时间】:2018-10-14 05:26:40
【问题描述】:
我正在将一个 .Net Core Web API 项目部署到 AWS Lambda。它有效,但我有以下问题:
以前的模板包含不再使用的参数
之前的 Lambda 部署创建了一个 CloudFormation 模板,其中定义了 Parameter。为了讨论,我们称之为“BadParameter”。
现在,我们不想再使用那个参数了。我们更新了serverless.template,使其不再具有该参数。
现在,我们所有的部署(使用更新模板)都失败并显示以下消息:
创建 CloudFormation 更改集时出错:参数:[BadParameter] 模板中不存在
我可以通过从 CloudFormation 下载模板,手动删除参数,然后重新上传模板来解决此问题,但这很繁琐且容易出错。
有什么方法可以在我的新模板中指定应该删除旧参数吗?
【问题讨论】:
-
理想情况下,您的 CloudFormation 模板应反映部署的当前状态,并且您不应在 CloudFormation 之外的该环境中部署/修改任何内容。您能否不简单地从源中使用的所有参数(包括 CF 模板)中删除该参数,并执行 CloudFormation 更新以重新部署所有相关更改?
-
@jarmod 这正是我想要做的。问题是,当我尝试更新模板时,它会失败,因为旧版本有一个新版本缺少的参数。唯一的方法似乎是首先手动更新现有模板。
-
我认为失败的原因不是以前版本的模板包含参数(否则永远无法删除参数)。文档建议您可以删除模板参数除非它被不支持更新的资源使用。会不会是这个问题?
标签: amazon-web-services aws-lambda amazon-cloudformation