无法在特定区域中创建s3存储桶

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在特定区域中创建s3存储桶相关的知识,希望对你有一定的参考价值。

我试图在python中使用boto3在AWS的每个区域中创建一个s3存储桶,但是我未能在4个区域中创建存储桶(af-south-1,eu-south-1,ap-east-1 &me-south-1)

我的python代码:

def create_bucket(name, region):
    s3 = boto3.client('s3')
    s3.create_bucket(Bucket=name, CreateBucketConfiguration='LocationConstraint': region)

以及我得到的例外:

botocore.exceptions.ClientError: An error occurred (InvalidLocationConstraint) when calling the CreateBucket operation: The specified location-constraint is not valid

我可以从aws网站在这些区域中创建存储桶,但这对我不利,因此我尝试不使用boto3而直接从其余API创建存储桶。

url:bucket-name。s3.amazonaws.com

正文:

<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <LocationConstraint>eu-south-1</LocationConstraint>
</CreateBucketConfiguration>

但是响应类似于例外:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>InvalidLocationConstraint</Code>
    <Message>The specified location-constraint is not valid</Message>
    <LocationConstraint>eu-south-1</LocationConstraint>
    <RequestId>********</RequestId>
    <HostId>**************</HostId>
</Error>

有人知道为什么我可以从网站上手动执行但不能从python上手动执行吗?

答案

您的代码失败的区域是相对较新的区域,您需要先选择加入这些区域才能使用它们,请参见此处Managing AWS Regions

以上是关于无法在特定区域中创建s3存储桶的主要内容,如果未能解决你的问题,请参考以下文章

无法在 cloudformation 中创建带有事件的 s3 存储桶,以连接到它

AWS S3:更改策略后无法列出存储桶

使用 CloudFormation 在 S3 存储桶中创建 Lambda 通知

AWS Cloudformation 模板 - 在 S3 存储桶中设置区域

为啥 terraform 会在 s3 存储桶中创建一个空目录?

在 Terraform 中创建 S3 存储桶通知时出错