AWS CloudFront分发属性验证失败问题排查求助
AWS CloudFront分发属性验证失败排查步骤
第一步:检查YAML语法合法性
先确认YAML文件的基础语法:- 缩进必须统一用空格,别混tab
- 键值对冒号后必须加空格
- 字符串别出现未闭合的引号或不必要的转义
- 列表项的短横线格式要规范
可以用yamllint命令或者在线YAML校验工具快速扫语法错误。
第二步:核对CloudFront必填属性
对照AWS官方文档,检查YAML里CloudFront分发的必填字段有没有缺漏或格式错:Origins:源配置必须包含DomainName和Id,自定义源要补全CustomOriginConfig参数,S3源要对应S3OriginConfigDefaultCacheBehavior:必须指定TargetOriginId、ViewerProtocolPolicy、AllowedMethods这些核心字段CallerReference:得是唯一值,每次更新分发建议改一下
第三步:验证属性值的有效性
逐个核对字段值是否符合AWS规则:- 源站域名得存在且能访问,要是S3桶的话,桶名和Region得匹配
ViewerProtocolPolicy的值只能是allow-all、redirect-to-https或https-onlyAllowedMethods的列表只能包含合法HTTP方法,而且CachedMethods必须是它的子集- 自定义源的
HTTPPort/HTTPSPort要在合法范围,OriginProtocolPolicy得和源站配置匹配
第四步:排查IAM权限与资源依赖
- 确认部署用的IAM角色有
cloudfront:CreateDistribution/cloudfront:UpdateDistribution权限 - 如果配了WAF、Lambda@Edge、自定义SSL证书,得确保这些资源已经存在,而且证书必须在us-east-1区域
- 要是用S3源,检查桶的权限策略是否允许CloudFront访问
- 确认部署用的IAM角色有
第五步:匹配错误信息定位
从终端错误里抓具体关键词(比如某个字段无效、资源找不到),直接对应YAML里的字段修改:- 要是错误提示“InvalidViewerProtocolPolicy”,就去改
DefaultCacheBehavior下的这个字段 - 要是提示“OriginNotFound”,核对源站域名和ID是否正确
- 要是错误提示“InvalidViewerProtocolPolicy”,就去改
内容的提问来源于stack exchange,提问作者Travis Salmon
相关产品推荐
相关产品推荐

