Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Memecahkan masalah AWS CDK bootstrap

Mode fokus
Memecahkan masalah AWS CDK bootstrap - AWS Cloud Development Kit (AWS CDK) v2

Ini adalah Panduan Pengembang AWS CDK v2. CDK v1 yang lebih lama memasuki pemeliharaan pada 1 Juni 2022 dan mengakhiri dukungan pada 1 Juni 2023.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Ini adalah Panduan Pengembang AWS CDK v2. CDK v1 yang lebih lama memasuki pemeliharaan pada 1 Juni 2022 dan mengakhiri dukungan pada 1 Juni 2023.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah umum saat mem-bootstrap lingkungan Anda dengan file. AWS Cloud Development Kit (AWS CDK)

Untuk pengantar bootstrap, lihat. AWS CDK bootstrap

Untuk petunjuk tentang bootstrap, lihat. Bootstrap lingkungan Anda untuk digunakan dengan AWS CDK

Saat melakukan bootstrap menggunakan templat default, Anda mendapatkan kesalahan 'CREATE_FAILED' untuk bucket Amazon S3

Saat melakukan bootstrap menggunakan Antarmuka Baris AWS CDK Perintah (CDK CLI) cdk bootstrap perintah dengan template bootstrap default, Anda menerima kesalahan berikut:

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

Sebelum pemecahan masalah, pastikan Anda menggunakan CDK versi terbaru CLI.

  • Untuk memeriksa versi Anda, jalankancdk --version.

  • Untuk menginstal versi terbaru, jalankannpm install -g aws-cdk.

Setelah menginstal versi terbaru, coba bootstrapping lingkungan Anda lagi. Jika Anda masih menerima kesalahan yang sama, lanjutkan dengan pemecahan masalah.

Penyebab umum

Ketika Anda bootstrap lingkungan Anda, AWS CDK menghasilkan fisik IDs untuk sumber daya bootstrap Anda. Untuk informasi selengkapnya, lihat Sumber daya IDs dibuat selama bootstrap.

Tidak seperti sumber daya bootstrap lainnya, nama bucket Amazon S3 bersifat global. Ini berarti bahwa setiap nama bucket harus unik di semua Akun AWS Wilayah AWS dalam partisi. Untuk informasi selengkapnya, lihat ikhtisar Bucket di Panduan Pengguna Amazon S3. Oleh karena itu, penyebab paling umum dari kesalahan ini adalah ID fisik yang dihasilkan sebagai nama bucket Anda sudah ada di suatu tempat di dalam partisi. Ini bisa di akun Anda atau akun lain.

Berikut ini adalah contoh nama bucket:cdk-hnb659fds-assets-012345678910-us-west-1. Meskipun tidak mungkin, karena kualifikasi dan ID akun menjadi bagian dari nama, ada kemungkinan bahwa nama untuk bucket Amazon S3 ini digunakan oleh yang lain. Akun AWS Karena nama bucket dicakup secara global, nama bucket tidak dapat digunakan oleh Anda jika digunakan oleh akun lain di partisi yang sama. Kemungkinan besar, ember dengan nama yang sama ada di suatu tempat di akun Anda. Ini bisa di Wilayah yang Anda coba bootstrap, atau Wilayah lain.

Umumnya, resolusinya adalah menemukan bucket ini di akun Anda dan menentukan apa yang harus dilakukan dengannya, atau menyesuaikan bootstrap untuk membuat sumber daya bootstrap dengan nama yang berbeda.

Resolusi

Pertama, tentukan apakah ember dengan nama yang sama ada di dalam Anda Akun AWS. Menggunakan AWS identitas dengan izin yang valid untuk mencari bucket Amazon S3 di akun Anda, Anda dapat melakukannya dengan cara berikut:

  • Gunakan aws s3 ls perintah AWS Command Line Interface (AWS CLI) untuk melihat daftar semua bucket Anda.

  • Cari nama bucket untuk setiap Wilayah di akun Anda menggunakan konsol Amazon S3.

Jika ember dengan nama yang sama ada, tentukan apakah itu sedang digunakan. Jika tidak digunakan, pertimbangkan untuk menghapus bucket dan mencoba mem-bootstrap lingkungan Anda lagi.

Jika ada bucket dengan nama yang sama dan Anda tidak ingin menghapusnya, tentukan apakah bucket tersebut sudah dikaitkan dengan tumpukan bootstrap di akun Anda. Anda mungkin harus memeriksa beberapa Wilayah. Wilayah dalam nama bucket Amazon S3 tidak selalu berarti bahwa bucket ada di Wilayah itu. Untuk memeriksa apakah itu terkait dengan tumpukan CDKToolkit bootstrap, Anda dapat melakukan salah satu hal berikut untuk setiap Wilayah:

  • Gunakan AWS CLI aws cloudformation describe-stack-resources --stack-name CDKToolkit --region Region perintah untuk melihat sumber daya di tumpukan bootstrap Anda dan periksa apakah bucket terdaftar.

  • Di AWS CloudFormation konsol, cari CDKToolkit tumpukan. Kemudian, pada tab Resources, periksa apakah bucket ada.

Jika bucket dikaitkan dengan tumpukan bootstrap, tentukan apakah tumpukan bootstrap berada di Wilayah yang sama dengan yang Anda coba bootstrap. Jika ya, lingkungan Anda sudah di-bootstrap dan Anda harus dapat mulai menggunakan CDK untuk menyebarkan aplikasi ke lingkungan Anda. Jika bucket Amazon S3 dikaitkan dengan tumpukan bootstrap di Wilayah yang berbeda, Anda harus menentukan apa yang harus dilakukan. Resolusi yang mungkin termasuk mengganti nama bucket Amazon S3 yang ada, menghapus bucket Amazon S3 saat ini jika tidak digunakan, atau menggunakan nama baru untuk bucket Amazon S3 yang Anda coba buat.

Jika Anda tidak dapat menemukan bucket Amazon S3 dengan nama yang sama di akun Anda, itu mungkin ada di akun lain. Untuk mengatasi ini, Anda harus menyesuaikan bootstrap untuk membuat nama baru untuk semua sumber daya bootstrap Anda atau hanya untuk bucket Amazon S3 Anda. Untuk membuat nama baru untuk semua sumber daya bootstrap, Anda dapat memodifikasi qualifier. Untuk membuat nama baru hanya untuk bucket Amazon S3 Anda, Anda dapat memberikan nama bucket baru.

Untuk menyesuaikan bootstrap, Anda dapat menggunakan opsi dengan CDK CLI cdk bootstrapperintah atau dengan memodifikasi template bootstrap. Untuk petunjuk, silakan lihat Sesuaikan AWS CDK bootstrap.

Jika Anda menyesuaikan bootstrap, Anda harus menerapkan perubahan yang sama pada sintesis sebelum Anda dapat menerapkan aplikasi dengan benar. Untuk petunjuk, silakan lihat Sesuaikan sintesis tumpukan CDK.

Misalnya, Anda dapat memberikan kualifikasi baru dengancdk bootstrap:

$ cdk bootstrap --qualifier abcde0123

Berikut ini adalah contoh nama bucket Amazon S3 yang akan dibuat dengan modifikasi ini:. cdk-abcde0123-assets-012345678910-us-west-1 Semua sumber daya bootstrap yang dibuat selama bootstrap akan menggunakan kualifikasi ini.

Saat mengembangkan aplikasi CDK, Anda harus menentukan kualifikasi kustom di synthesizer Anda. Ini membantu CDK mengidentifikasi sumber daya bootstrap Anda selama sintesis dan penerapan. Berikut ini adalah contoh penyesuaian synthesizer default untuk instance stack Anda:

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', }), });

Anda juga dapat menentukan qualifier baru dalam cdk.json file proyek CDK Anda:

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

Untuk memodifikasi hanya nama bucket Amazon S3, Anda dapat menggunakan opsi ini--bootstrap-bucket-name. Berikut adalah contohnya:

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

Saat mengembangkan aplikasi CDK, Anda harus menentukan nama bucket baru di synthesizer. Berikut ini adalah contoh penyesuaian synthesizer default untuk instance stack Anda:

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', }), });

Pencegahan

Kami menyarankan Anda secara proaktif mem-bootstrap setiap AWS lingkungan yang Anda rencanakan untuk digunakan. Untuk informasi selengkapnya, lihat Kapan harus mem-bootstrap lingkungan Anda. Khusus untuk masalah penamaan bucket Amazon S3, ini akan membuat bucket Amazon S3 di AWS setiap lingkungan dan mencegah orang lain menggunakan nama bucket Amazon S3 Anda.

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.