AWS CloudFront调用CreateInvalidation报NoSuchDistribution错误如何解决
你当前配置的CloudFront权限已经覆盖了创建失效刷新任务的所需权限,报错NoSuchDistribution和权限配置无关,可按以下步骤排查:
排查步骤
- 核对分发ID拼写
检查你调用CreateInvalidation接口时传入的分发ID是否完全正确,注意分发ID大小写敏感,不要多输、漏输字符,也不要误将S3存储桶名、其他AWS资源ID作为分发ID传入。 - 确认分发所属AWS账号
检查你调用接口使用的访问密钥/角色所属的AWS账号,和目标CloudFront分发所属的账号是否一致。CloudFront是全球服务,但分发归属于创建它的AWS账号,未授权的跨账号调用会优先返回资源不存在错误,而非权限错误。 - 确认分发存活状态
登录AWS控制台进入CloudFront服务页,查看目标分发的状态,确认分发未被删除,状态处于*已部署(Deployed)或部署中(In Progress)*均可,已删除的分发无法调用任何操作接口。 - 核对调用区域配置
CloudFront属于全球服务,调用官方API/CLI/SDK时必须指定us-east-1区域,如果调用时指定了其他区域,会出现找不到对应分发的错误。例如CLI调用时需要添加参数--region us-east-1,SDK调用时也要显式将区域设置为us-east-1。 - 验证账号下的分发列表
使用当前调用凭证调用cloudfront:ListDistributions接口,核对返回的分发列表中是否包含你要操作的目标分发ID,如果列表中没有对应ID,说明当前凭证所属账号下不存在该分发,或凭证缺少列举分发的权限。
内容的提问来源于stack exchange,提问作者Ajay Naik
相关产品推荐
相关产品推荐

