You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CloudFormation使用问题:手动删除资源恢复与VPC默认资源获取

问题1:手动删除CloudFormation栈管理的子网后,无模板变更如何恢复资源
  • 根本原因:CloudFormation默认执行更新栈操作时,仅对比当前模板和上一次部署的模板配置差异,不会主动校验云上实际资源的状态,因此手动删除资源后无模板变更的情况下会判定无更新内容。
  • 解决步骤:
    1. 进入目标CloudFormation栈的详情页,切换到漂移检测标签页,点击「检测漂移」,等待检测完成。
    2. 检测完成后,被手动删除的子网会被标记为DELETED漂移状态,选中该资源后点击「修复漂移」,CloudFormation会直接按照原有模板的配置重新创建该子网,全程无需修改原有模板。

    若遇到该资源类型不支持自动漂移修复的情况,可选择创建变更集时使用「使用当前模板」,为栈临时添加一个无业务影响的自定义标签,提交更新后再删除该标签即可触发资源同步,该操作同样不需要修改原有模板。

问题2:CloudFormation创建VPC生成的默认路由表、NACL相关问题

① 为什么无法直接使用这些默认资源

通过AWS::EC2::VPC资源创建VPC时,AWS侧自动生成的默认路由表、默认NACL、默认安全组等资源,默认不属于当前CloudFormation栈的管理范围,栈的资源清单不会收录这些自动生成的资源,因此无法直接通过!Ref等引用方式调用未被栈纳管的资源。

② 如何获取默认路由表、NACL的ID

可以直接通过Fn::GetAtt函数读取VPC资源的内置返回属性获取对应ID,不需要额外的调用或配置:

  • 获取默认路由表ID:假设你模板中定义的VPC逻辑名为MyVPC,使用语法为!GetAtt MyVPC.DefaultRouteTableId
  • 获取默认NACL ID:语法为!GetAtt MyVPC.DefaultNetworkAclId

你可以直接将上述返回值用在子网路由表关联、NACL关联等资源配置中,和引用自定义路由表/NACL的方式完全一致。


内容的提问来源于stack exchange,提问作者Roshani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:48:03