Aws-cli: aws s3api create-bucket lança erro para us-east-2

Criado em 12 mai. 2017  ·  16Comentários  ·  Fonte: aws/aws-cli

aws s3api create-bucket --bucket dev-xxxx-com-state --region us-east-2

Ocorreu um erro de cliente (IllegalLocationConstraintException) ao chamar a operação CreateBucket: a restrição de local não especificada é incompatível para o ponto de extremidade específico da região para o qual esta solicitação foi enviada.

Funciona bem com us-east-1.

aws --versão
aws-cli/1.7.45 Python/2.7.10 Darwin/16.5.0

documentation guidance s3api service-api

Comentários muito úteis

Para aqueles que desejam criar um bucket por meio da CLI, execute isto:

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

Todos 16 comentários

Você precisa especificar a restrição de local para cada região, exceto us-east-1 . Veja os documentos para exemplos.

Alternativamente, você pode usar mb que irá lidar com isso para você.

Mesmo que eu usei LocationConstraint, mas acabei recebendo exceções, verificar os detalhes do parâmetro sugere que temos uma lista finita para localização. Posso usar o console da web da AWS para criar bucket com região como us-east-2, mas não posso criar bucket por meio de awscli create-bucket mesmo depois de usar locationconstraint com região como us-east-2.

{
"LocationConstraint": "EU"|"eu-west-1"|"us-west-1"|"us-west-2"|"ap-south-1"|"ap-southeast-1"|"ap -southeast-2"|"ap-northeast-1"|"sa-east-1"|"cn-north-1"|"eu-central-1"
}

mb parece ser um método alternativo e vou tentar isso, mas o awscli create-bucket deve corrigir essa inconsistência.

Ressalto.

Enfrentando o mesmo problema com duplicidade/boto aqui... (eu-central-1)
Na tentativa de criação do Bucket, recebo:

<Error><Code>IllegalLocationConstraintException</Code><Message>The EU location constraint is incompatible for the region specific endpoint this request was sent to.</Message><RequestId>237A164CEBB07087</RequestId><HostId>oEDaB4OT/MlUGIJ0j1GJH7ezXqldUZa2sFKRPz3iHqAZsnpOyKiRGDV69hP/FTXK1j90ogcJB/Y=</HostId></Error>

Se eu criar o Bucket manualmente tudo está funcionando bem...

Por favor, dê uma olhada em seus arquivos de log...

Eu consertei no Boto3:

os.environ['AWS_DEFAULT_REGION'] = 'eu-west-2'
myS3 = boto3.resource('s3')
results = myS3.create_bucket(
                             Bucket='zxvxdvx.gsdrgerrrczxczxcgggzxczxczxc',
                             CreateBucketConfiguration={'LocationConstraint': AWS_DEFAULT_REGION}
                            )

Para aqueles que desejam criar um bucket por meio da CLI, execute isto:

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

Postando aqui para a posteridade. Os nomes dos buckets são GLOBALMENTE exclusivos! A AWS CLI fornecerá IllegalLocationConstraintException se você colidir com um bucket já existente e tiver especificado uma região diferente da região do bucket já existente. Se você adivinhar a região correta do bucket existente, ele fornecerá a exceção BucketAlreadyExists .

@thetomasz Não posso acreditar na minha sorte que você postou isso 21 horas antes de eu ter exatamente o mesmo problema. Muito obrigado; esse era exatamente o meu problema.

o seguinte não funciona para mim:
aws s3api create-bucket --bucket avengers-docker-eb --region us-east-1 --create-bucket-configuration LocationConstraint=us-east-1

erro:
Ocorreu um erro (IllegalLocationConstraintException) ao chamar a operação CreateBucket: a restrição de local us-east-1 é incompatível para o ponto de extremidade específico da região para o qual esta solicitação foi enviada.

@thetomasz muito obrigado pelo seu post! Eu gostaria de ter visto seu post pela primeira vez antes de finalmente descobrir isso sozinho. A mensagem é realmente confusa, até mesmo enganosa.

Para descobrir se um nome já foi usado e descobrir em qual região, se realmente for, o bucket está localizado, observe o registro DNS do nome "your-bucket-name.s3.amazonaws.com". Por exemplo:

$ dig test8765.s3.amazonaws.com

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> test8765.s3.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39766
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;test8765.s3.amazonaws.com. IN  A

;; ANSWER SECTION:
test8765.s3.amazonaws.com. 2016 IN  CNAME   s3-us-west-2-w.amazonaws.com.
s3-us-west-2-w.amazonaws.com. 5 IN  A   52.218.216.10

;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Jan 03 15:16:11 AEDT 2019
;; MSG SIZE  rcvd: 99

Bem, isso explica por que meu nome de bucket de "testbucket" não foi aprovado ;) Obrigado pessoal.

Eu tive o mesmo problema. Usar aws s3 mb s3://<bucket-name> --region us-east-2 funcionou para mim.

Acabei de encontrar esse bug, eu mesmo. Vamos AWS. Consertá-lo. Se o erro for uma colisão de nomenclatura global, diga isso.

Recebo este erro quando faço a criptografia Put Bucket no meu script lambda. Alguém pode ajudar

Ocorreu um erro (IllegalLocationConstraintException) ao chamar a operação PutBucketEncryption: A restrição de local ap-east-1 é incompatível para o endpoint específico da região para o qual esta solicitação foi enviada.: ClientError

Para aqueles que desejam criar um bucket por meio da CLI, execute isto:

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

trabalhou para mim

Para todos que tentam criar o bucket em us-east-1, basta alterar o --region us-east-2 e ele foi criado perfeitamente e ficou visível no meu console aws.

Até funcionou para mim depois de passar as opções de parâmetro """"--create-bucket-configuration LocationConstraint=us-west-2"""'

aws s3api create-bucket --bucket my-bucket-name --region us-west-2 --create-bucket-configuration LocationConstraint=us-west-2

Esta página foi útil?
0 / 5 - 0 avaliações