当通过API连接到AWS CloudFront时,无论我做什么,我都会得到例外:
Credential should be scoped to a valid region
相同的凭据适用于帐户有权访问的任何其他请求,例如S3。
答案 0 :(得分:5)
异常是由使用" us-east-1"以外的任何区域集访问CloudFront引起的。因为CloudFront基本上是无区域的,所以它要求您只使用默认区域" us-east-1"与它交谈。
http://docs.aws.amazon.com/general/latest/gr/signature-v4-troubleshooting.html
您可以使用您在其他位置使用的相同凭据来解决此问题,但在明确设置了Region的情况下实例化CloudFront客户端:
AmazonCloudFrontClient client = new AmazonCloudFrontClient(Amazon.RegionEndpoint.USEast1);
请问后续问题:为什么API不仅适用于您?
答案 1 :(得分:0)
这个答案适用于任何试图解决 Credential should be scoped to a valid region
错误的人
如果您向与凭证范围中指定的区域不同的区域提交请求,您将收到来自多个区域可用的亚马逊产品的相同类型的无效区域响应。
<块引用>凭据还必须为请求中的服务和操作指定正确的区域。
来自https://docs.amazonaws.cn/en_us/general/latest/gr/signature-v4-troubleshooting.html
简单来说,您设置的区域应该与您查询中提到的区域匹配(sdk api调用,rest api调用或任何其他)
如果在指定相同区域后仍然出现相同错误,可能是因为查询格式需要端点中的区域名称,如 https://elasticloadbalancing.eu-west-1.amazonaws.com