手动删除重建Route53 Hosted Zone后CloudFormation部署问题咨询
关于CloudFormation重新添加Route53托管区的问题
直接移除后重新添加模板中的
AWS::Route53::HostedZone资源,会创建新的托管区。因为CloudFormation的栈状态里只记录了之前被手动删除的那个托管区的物理ID,完全不知道你手动重建的这个新托管区的存在,所以会按照模板定义生成全新的资源。如果想让CloudFormation识别并接管现有手动创建的托管区,不能直接删了再加,得用CloudFormation资源导入功能:
- 先把该托管区资源从CloudFormation栈中移除,完成栈更新
- 确保你的模板里
AWS::Route53::HostedZone的配置(比如域名、私有托管区的VPC关联等)和现有托管区完全一致 - 通过AWS CLI命令
aws cloudformation import-stack或者控制台的“导入现有资源到栈”功能,指定现有托管区的物理ID(就是控制台里显示的托管区标识符),把它导入到栈中 - 导入完成后,CloudFormation就会把这个现有托管区纳入管理,不会新建资源
注意:导入时模板属性必须和现有托管区完全匹配,否则会导入失败;导入后不要再手动修改该托管区的配置,所有变更都要通过CloudFormation模板更新来操作,避免再次出现物理ID不匹配的问题。
内容的提问来源于stack exchange,提问作者Yunhan Zou
相关产品推荐
相关产品推荐

