已删除源站关联S3 Bucket后,如何删除CloudFront分发?
清理残留CloudFront分发的方法
方法一:通过AWS CLI替换无效源后删除
- 获取当前分发的配置信息并保存到本地文件:
aws cloudfront get-distribution-config --id <你的CloudFront分发ID> > dist-config.json- 编辑
dist-config.json:
- 找到
Origins节点,将原有无效的S3源替换为一个存在的有效源(比如你名下任意正常的S3桶,无需存储内容) - 修改
CallerReference字段的值(可以换成当前时间戳或任意新字符串,必须与原配置不同) - 移除输出中顶层的
ETag冗余字段,只保留DistributionConfig内的内容作为最终配置文件
- 编辑
- 用修改后的配置更新分发:
aws cloudfront update-distribution --id <你的分发ID> --distribution-config file://dist-config.json --if-match <原配置返回的ETag值>- 配置更新完成后,执行禁用和删除操作:
# 禁用分发 aws cloudfront update-distribution --id <你的分发ID> --distribution-config file://dist-config.json --if-match <更新后的ETag值> --enabled false # 删除分发 aws cloudfront delete-distribution --id <你的分发ID> --if-match <禁用后的ETag值>
方法二:重建关联S3桶后通过CloudFormation清理
- 重新创建与之前同名的S3桶(若桶名已被占用,可临时修改CloudFormation模板中的桶名,确保与分发配置匹配)
- 执行CloudFormation堆栈更新,让堆栈重新关联该有效S3桶
- 待堆栈更新完成后,正常删除CloudFormation堆栈,此时CloudFront分发会被自动清理
方法三:联系AWS支持协助清理
若上述方法均无法解决,直接提交AWS支持工单,提供以下信息:
- CloudFront分发ID
- 问题描述:手动删除关联S3桶后,CloudFormation堆栈删除失败,分发无法通过常规操作清理
- AWS支持团队可通过后台操作直接清理残留的分发资源
内容的提问来源于stack exchange,提问作者Edward Moffett
相关产品推荐
相关产品推荐

