Amazon web services CloudFormation,AWS Lambda:忽略旧模板中的参数
我正在向AWS Lambda部署一个.Net核心Web API项目。这是可行的,但我有以下问题: 以前的模板包含不再使用的参数 之前的Lambda部署使用定义的Amazon web services CloudFormation,AWS Lambda:忽略旧模板中的参数,amazon-web-services,aws-lambda,amazon-cloudformation,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我正在向AWS Lambda部署一个.Net核心Web API项目。这是可行的,但我有以下问题: 以前的模板包含不再使用的参数 之前的Lambda部署使用定义的参数创建了一个CloudFormation模板。为了便于讨论,我们将其称为“BadParameter” 现在,我们不想再使用这个参数了。我们已经更新了serverless.template,使其不再具有该参数 现在,我们的所有部署(使用更新模板)都失败,并显示以下消息: 创建CloudFormation更改集时出错:参数:[BadPara
参数创建了一个CloudFormation模板。为了便于讨论,我们将其称为“BadParameter”
现在,我们不想再使用这个参数了。我们已经更新了serverless.template
,使其不再具有该参数
现在,我们的所有部署(使用更新模板)都失败,并显示以下消息:
创建CloudFormation更改集时出错:参数:[BadParameter]
模板中不存在
我可以通过从CloudFormation下载模板,手动删除参数,然后重新上传模板来解决这个问题,但这既繁琐又容易出错
有什么方法可以在我的新模板中指定删除旧参数吗?我知道这个老问题,但我自己使用CodePipeline遇到了这个问题。但我无法从OP的问题中判断他们是否在使用它
解决方案是从CodePipelineCHANGE\u SET\u REPLACE
阶段的TemplateConfiguration
中引用的json文件中删除旧参数。理想情况下,CloudFormation模板应该反映部署的当前状态,您不应该在CloudFormation之外的环境中部署/修改任何内容。你能不能简单地从源代码中使用的所有地方(包括CF模板)删除该参数,并进行CloudFormation更新以重新部署所有相关更改?@jarmod这正是我想要做的。问题是,当我尝试更新模板时,它失败了,因为旧版本有一个新版本缺少的参数。唯一的方法似乎是首先手动更新现有模板。我不认为失败的原因是模板的早期版本包含参数(否则您永远无法删除参数)。文档建议您可以删除模板参数,除非该参数由不支持更新的资源使用。这可能是问题所在吗?