Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Solucionar problemas de AWS CDK inicialização

Modo de foco
Solucionar problemas de AWS CDK inicialização - AWS Cloud Development Kit (AWS CDK) v2

Este é o Guia do Desenvolvedor AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Este é o Guia do Desenvolvedor AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solucione problemas comuns ao inicializar seu ambiente com o. AWS Cloud Development Kit (AWS CDK)

Para uma introdução ao bootstrapping, consulte AWS CDK bootstrapping.

Para instruções sobre bootstrapping, consulte Inicialize seu ambiente para uso com o AWS CDK.

Ao inicializar usando o modelo padrão, você recebe um erro “CREATE_FAILED” para o bucket do Amazon S3

Ao inicializar usando a interface de linha de AWS CDK comando (CDK) CLI) cdk bootstrap com o modelo de bootstrap padrão, você recebe o seguinte erro:

CREATE_FAILED | AWS::S3::Bucket | BucketName already exists

Antes de solucionar problemas, verifique se você está usando a versão mais recente do CDK CLI.

  • Para verificar a versão, execute cdk --version.

  • Para instalar a versão mais recente, execute npm install -g aws-cdk.

Depois de instalar a versão mais recente, tente fazer o bootstrapping em seu ambiente novamente. Se você ainda receber o mesmo erro, continue com a solução de problemas.

Causas comuns

Quando você inicializa seu ambiente, AWS CDK ele gera material físico IDs para seus recursos de bootstrap. Para obter mais informações, consulte Recurso IDs criado durante a inicialização.

Ao contrário dos outros recursos de bootstrap, os nomes dos buckets do Amazon S3 são globais. Isso significa que cada nome de bucket deve ser exclusivo Contas da AWS em todos os aspectos Regiões da AWS de uma partição. Para obter mais informações, consulte Visão geral dos buckets no Guia do usuário do Amazon S3. Portanto, a causa mais comum desse erro é que o ID físico gerado como nome do bucket já existe em algum lugar dentro da partição. Isso pode acontecer na sua conta ou em outra conta.

Veja a seguir um exemplo de nome de bucket: cdk-hnb659fds-assets-012345678910-us-west-1. Embora seja improvável, devido ao qualificador e ao ID da conta fazerem parte do nome, é possível que esse nome de um bucket do Amazon S3 seja usado por outra Conta da AWS. Como os nomes dos buckets têm escopo global, eles não podem ser usados por você se forem usados por uma conta diferente na mesma partição. Provavelmente, existe um bucket com o mesmo nome em algum lugar da sua conta. Isso pode estar na região em que você está tentando fazer o bootstrapping ou em outra região.

Geralmente, a solução é localizar esse bucket na sua conta e determinar o que fazer com ele, ou personalizar o bootstrapping para criar recursos de bootstrap com um nome diferente.

Resolução

Primeiro, determine se existe um bucket com o mesmo nome no seu Conta da AWS. Usando uma AWS identidade com permissões válidas para pesquisar buckets do Amazon S3 em sua conta, você pode fazer isso das seguintes formas:

  • Use o aws s3 ls comando AWS Command Line Interface (AWS CLI) para ver uma lista de todos os seus buckets.

  • Procure nomes de bucket para cada região em sua conta usando o console do Amazon S3.

Se existir um bucket com o mesmo nome, determine se ele está sendo usado. Se ele não estiver sendo usado, considere excluir o bucket e tentar fazer o bootstrapping em seu ambiente novamente.

Se existir um bucket com o mesmo nome e você não quiser excluí-lo, determine se ele já está associado a uma pilha de bootstrap na sua conta. Talvez seja necessário verificar várias regiões. A região no nome do bucket do Amazon S3 não significa necessariamente que o bucket esteja nessa região. Para verificar se ela está associada à pilha de bootstrap CDKToolkit, você poderá seguir um destes procedimentos para cada região:

  • Use o AWS CLI aws cloudformation describe-stack-resources --stack-name CDKToolkit --region Region comando para visualizar os recursos em sua pilha de bootstrap e verificar se o bucket está listado.

  • No console do AWS CloudFormation, localize a pilha do CDKToolkit. Em seguida, na guia Recursos, verifique se o bucket existe.

Se o bucket estiver associado a uma pilha de bootstrap, determine se a pilha de bootstrap está na mesma região em que você está tentando fazer o bootstrapping. Se estiver, seu ambiente já recebeu o bootstrapping e você deve ser capaz de começar a usar o CDK para implantar aplicações em seu ambiente. Se o bucket do Amazon S3 estiver associado a uma pilha de bootstrap em uma região diferente, você precisará determinar o que fazer. As possíveis soluções incluem renomear o bucket do Amazon S3 existente, excluir o bucket atual do Amazon S3 se ele não estiver sendo usado ou usar um novo nome para o bucket do Amazon S3 que você está tentando criar.

Se você não conseguir localizar um bucket do Amazon S3 com o mesmo nome em sua conta, ele poderá existir em uma conta diferente. Para resolver isso, você precisará personalizar o bootstrap para criar novos nomes para todos os seus recursos de bootstrap ou apenas para seu bucket do Amazon S3. Para criar novos nomes para todos os recursos de bootstrap, você pode modificar o qualificador. Para criar um novo nome somente para seu bucket do Amazon S3, você poderá fornecer um novo nome de bucket.

Para personalizar a inicialização, você pode usar opções com o CDK CLI cdk bootstrapcomando ou modificando o modelo de bootstrap. Para obter instruções, consulte Personalize o AWS CDK bootstrapping.

Se você personalizar o bootstrapping, precisará aplicar as mesmas alterações à síntese antes de poder implantar adequadamente uma aplicação. Para instruções, consulte Personalizar a síntese de pilhas do CDK.

Por exemplo, você pode fornecer um novo qualificador com cdk bootstrap:

$ cdk bootstrap --qualifier abcde0123

Veja a seguir um exemplo de nome de bucket do Amazon S3 que será criado com essa modificação: cdk-abcde0123-assets-012345678910-us-west-1. Todos os recursos de bootstrap criados durante o bootstrapping usarão esse qualificador.

Ao desenvolver sua aplicação do CDK, você deve especificar seu qualificador personalizado em seu sintetizador. Isso ajuda o CDK a identificar seus recursos de bootstrap durante a síntese e a implantação. Veja a seguir um exemplo de como personalizar o sintetizador padrão para sua instância de pilha:

TypeScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'abcde0123', }), });
JavaScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'abcde0123', }), })
Python
MyStack(self, "MyStack", synthesizer=DefaultStackSynthesizer( qualifier="abcde0123" ))
Java
new MyStack(app, "MyStack", StackProps.builder() .synthesizer(DefaultStackSynthesizer.Builder.create() .qualifier("abcde0123") .build()) .build();
C#

new MyStack(app, "MyStack", new StackProps { Synthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { Qualifier = "abcde0123" }) });
Go
func NewMyStack(scope constructs.Construct, id string, props *MyStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) synth := awscdk.NewDefaultStackSynthesizer(&awscdk.DefaultStackSynthesizerProps{ Qualifier: jsii.String("abcde0123"), }) stack.SetSynthesizer(synth) return stack }
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'abcde0123', }), });

Você também pode especificar o novo qualificador no arquivo cdk.json do seu projeto do CDK:

{ "app": "...", "context": { "@aws-cdk/core:bootstrapQualifier": "abcde0123" } }

Para modificar somente o nome do bucket do Amazon S3, você pode usar a opção --bootstrap-bucket-name. Veja um exemplo a seguir:

$ cdk bootstrap --bootstrap-bucket-name 'my-new-bucket-name'

Ao desenvolver sua aplicação do CDK, você deve especificar o nome do novo bucket no sintetizador. Veja a seguir um exemplo de como personalizar o sintetizador padrão para sua instância de pilha:

TypeScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ fileAssetsBucketName: 'my-new-bucket-name', }), });
JavaScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ fileAssetsBucketName: 'my-new-bucket-name', }), })
Python
MyStack(self, "MyStack", synthesizer=DefaultStackSynthesizer( file_assets_bucket_name='my-new-bucket-name' ))
Java
new MyStack(app, "MyStack", StackProps.builder() .synthesizer(DefaultStackSynthesizer.Builder.create() .fileAssetsBucketName("my-new-bucket-name") .build()) .build();
C#

new MyStack(app, "MyStack", new StackProps { Synthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { FileAssetsBucketName = "my-new-bucket-name" }) });
Go
func NewMyStack(scope constructs.Construct, id string, props *MyStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) synth := awscdk.NewDefaultStackSynthesizer(&awscdk.DefaultStackSynthesizerProps{ FileAssetsBucketName: jsii.String("my-new-bucket-name"), }) stack.SetSynthesizer(synth) return stack }
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ fileAssetsBucketName: 'my-new-bucket-name', }), });

Prevenção

Recomendamos que você inicialize proativamente cada AWS ambiente que planeja usar. Para obter mais informações, consulte Quando fazer bootstrapping em seu ambiente. Especificamente para o problema de nomenclatura do bucket do Amazon S3, isso criará buckets do Amazon S3 em cada AWS ambiente e impedirá que outros usem o nome do seu bucket do Amazon S3.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.