AWS S3:将到AP-东北-1时支付额外费用我们 - 东 - 1

问题描述 投票:2回答:1

我们的AWS声明进来了,我们发现我们被双重收费的请求数。

第一次充电对Asia Pacific (Tokyo)(AP-东北-1),这是简单的,因为它就是我们斗的位置。但是,有反对US East (N. Virginia)(美国东部-1)具有类似的请求数另外收费。

长话短说,看来这是因为我们使用的aws s3 command发生的事情,我们没有指定一个区域或者通过--region选项或any of the fallback methods

打字aws configure list显示region: Value=<not set> Type=None Location=None

然而,我们的aws s3命令成功,尽管这看似隐藏费用。该假设是,我们的要求先去美国东部-1,但由于没有通过我们指定的名称水桶那里,转身回来AP-东北-1,它最终成功,同时获得占两次。

其中aws运行命令的EC2实例本身就是AP-东北-1如果算个什么。

所以,问题是,上面是一个合理的帐户所发生的事情的推测? (即它是预期的行为。)而且,它似乎有点阴险给我,但有一个合适的理由呢?

amazon-s3 aws-cli
1个回答
2
投票

你们看到的是正确的。该aws s3命令需要知道的区域,以访问S3桶。

由于这还没有提供,它将使请求us-east-1,这实际上是默认的 - 看到AWS S3 region chart看到us-east-1不需要位置约束。

如果S3接收的铲斗,其不在该区域的请求则返回与用于桶的正确区域PermanentRedirect响应。的AWS CLI透明地处理此,并且重复与正确的端点,其包括的区域中的请求。

看到这个动作,最简单的方法是运行在调试模式下的命令:

aws s3 ls ap-northeast-1-bucket --debug

输出将包括:

DEBUG - Response body:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>PermanentRedirect</Code><Message>The bucket you are attempting to access 
must be addressed using the specified endpoint. Please send all future requests to 
this endpoint.</Message>
<Endpoint>ap-northeast-1-bucket.s3.ap-northeast-1.amazonaws.com</Endpoint>
<Bucket>ap-northeast-1</Bucket> 
<RequestId>3C4FED2EFFF915E9</RequestId><HostId>...</HostId></Error>

在AWS CLI不承担该地区是一样的调用EC2实例,这是一个long running confusion/feature request

附加说明:这种方式不是所有AWS服务将自动发现区域,如果区域不设置将失败。 S3的作品,因为它使用本身就要求某种形式的发现服务的全局命名空间。

© www.soinside.com 2019 - 2024. All rights reserved.