CDK/CloudFormation中手动删除的Lambda资源恢复方法求助
解决CloudFormation因手动删除Lambda导致的更新失败问题
方法1:手动修正CloudFormation资源状态
- 打开CloudFormation控制台,定位到目标堆栈
- 切换到「资源」标签,找到那两个被手动删除的Lambda资源(此时CloudFormation中它们的状态仍为「CREATE_COMPLETE」,但实际AWS资源已不存在)
- 点击堆栈顶部的「操作」→「删除资源」,输入对应Lambda的逻辑ID,确认删除。这会让CloudFormation将该资源从堆栈状态中移除,下次执行
cdk deploy时就会自动重新创建这些Lambda。
方法2:通过CLI强制重新创建缺失资源
- 生成最新的CloudFormation模板:
cdk synth > template.yaml
- 使用CLI触发堆栈更新,指定重新创建缺失的Lambda:
aws cloudformation update-stack \ --stack-name YOUR_STACK_NAME \ --template-body file://template.yaml \ --resources-to-recreate "LogicalResourceIds=LAMBDA_LOGICAL_ID_1,LAMBDA_LOGICAL_ID_2"
替换YOUR_STACK_NAME和LAMBDA_LOGICAL_ID_*为实际值。
方法3:直接替换堆栈模板并更新
- 运行
cdk synth获取最新模板后,在CloudFormation控制台选择目标堆栈,点击「更新」→「替换当前模板」,上传生成的模板文件 - 在更新配置中选择「仅更新指定资源」,输入两个Lambda的逻辑ID,启动更新流程
注意事项
- 操作前务必备份当前堆栈的模板和状态,避免不可逆的错误
- 后续禁止手动删除CDK/CloudFormation管理的资源,如需调整,通过
cdk deploy或CloudFormation控制台的更新流程操作
内容的提问来源于stack exchange,提问作者matthewcummings516
相关产品推荐
相关产品推荐

