Ini adalah Panduan Pengembang AWS CDK v2. CDKV1 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.
Sesuaikan sintesis CDK tumpukan
Anda dapat menyesuaikan sintesis AWS Cloud Development Kit (AWS CDK) tumpukan dengan memodifikasi synthesizer default, menggunakan synthesizer bawaan lain yang tersedia, atau membuat synthesizer Anda sendiri.
AWS CDK Termasuk synthesizer bawaan berikut yang dapat Anda gunakan untuk menyesuaikan perilaku sintesis:
-
DefaultStackSynthesizer
— Jika Anda tidak menentukan synthesizer, yang ini digunakan secara otomatis. Ini mendukung penyebaran dan penerapan lintas akun menggunakan konstruksi Pipelines. CDK Kontrak bootstrap memerlukan bucket Amazon S3 yang ada dengan nama yang dikenal, ECR repositori Amazon yang ada dengan nama yang dikenal, dan lima IAM peran yang ada dengan nama yang dikenal. Template bootstrap default memenuhi persyaratan ini. -
CliCredentialsStackSynthesizer
- Kontrak bootstrap synthesizer ini memerlukan bucket Amazon S3 yang ada dan repositori Amazon yang ada. ECR Itu tidak memerlukan IAM peran apa pun. Untuk melakukan penerapan, synthesizer ini bergantung pada izin CDK CLI pengguna dan direkomendasikan untuk organisasi yang ingin membatasi kredensil IAM penerapan. Synthesizer ini tidak mendukung penerapan lintas akun atau Pipelines. CDK -
LegacyStackSynthesizer
— Synthesizer ini mengemulasi perilaku sintesis CDK v1. Kontrak bootstrap memerlukan bucket Amazon S3 yang ada dengan nama arbitrer dan mengharapkan lokasi aset diteruskan sebagai parameter tumpukan. CloudFormation Jika Anda menggunakan synthesizer ini, Anda harus menggunakan CDK CLI untuk melakukan penyebaran.
Sesuaikan DefaultStackSynthesizer
DefaultStackSynthesizer
Ini adalah synthesizer default untuk file. AWS CDK Ini dirancang untuk memungkinkan penyebaran aplikasi lintas akun, serta menyebarkan CDK CDK aplikasi dari sistem CI/CD yang tidak memiliki dukungan eksplisit untuk AWS CDK, tetapi mendukung penerapan reguler, seperti. CloudFormation AWS CodePipeline Synthesizer ini adalah pilihan terbaik untuk sebagian besar kasus penggunaan.
DefaultStackSynthesizer
kontrak bootstrap
DefaultStackSynthesizer
membutuhkan kontrak bootstrap berikut. Ini adalah sumber daya yang harus dibuat selama bootstrap:
Sumber daya Bootstrap | Deskripsi | Nama sumber daya yang diharapkan default | Tujuan |
---|---|---|---|
Bucket Amazon S3 |
Ember pementasan |
cdk-hnb659fds-aset- |
Menyimpan aset file. |
ECRRepositori Amazon |
Repositori pementasan |
cdk-hnb659 - fds-container-assets |
Menyimpan dan mengelola Docker aset gambar. |
IAMperan |
Menyebarkan peran |
cdk-hnb659 - fds-deploy-role |
Diasumsikan oleh CDK CLI dan berpotensi CodePipeline untuk mengambil peran lain dan memulai AWS CloudFormation penerapan. Kebijakan kepercayaan dari peran ini mengontrol siapa yang dapat menyebarkan dengan AWS CDK di AWS lingkungan ini. |
IAMperan |
AWS CloudFormation peran eksekusi |
cdk-hnb659 - fds-cfn-exec-role |
Peran ini digunakan oleh AWS CloudFormation untuk melakukan penyebaran. Kebijakan peran ini mengontrol operasi apa yang dapat dilakukan CDK penyebaran. |
IAMperan |
Peran pencarian |
cdk-hnb659 - fds-lookup-role |
Peran ini digunakan ketika CDK CLI perlu melakukan pencarian konteks lingkungan. Kebijakan kepercayaan dari peran ini mengontrol siapa yang dapat mencari informasi di lingkungan. |
IAMperan |
Peran penerbitan file |
cdk-hnb659 - fds-file-publishing-role |
Peran ini digunakan untuk mengunggah aset ke bucket pementasan Amazon S3. Diasumsikan dari peran penyebaran. |
IAMperan |
Peran penerbitan gambar |
cdk-hnb659 - fds-image-publishing-role |
Peran ini digunakan untuk meng-upload Docker gambar ke repositori ECR pementasan Amazon. Diasumsikan dari peran penyebaran. |
SSMparameter |
Parameter versi bootstrap |
/cdk-bootstrap/hnb659fds/ |
Versi template bootstrap. Ini digunakan oleh template bootstrap dan CDK CLI untuk memvalidasi persyaratan. |
Salah satu cara untuk menyesuaikan sintesis CDK tumpukan, adalah dengan memodifikasi. DefaultStackSynthesizer
Anda dapat menyesuaikan synthesizer ini untuk satu CDK tumpukan menggunakan synthesizer
properti instance AndaStack
. Anda juga dapat memodifikasi DefaultStackSynthesizer
semua tumpukan di CDK aplikasi menggunakan defaultStackSynthesizer
properti App
instance Anda.
Ubah kualifikasi
Kualifikasi ditambahkan ke nama sumber daya yang dibuat selama bootstrap. Secara default, nilainya adalah hnb659fds
. Saat Anda memodifikasi qualifier selama bootstrap, Anda perlu menyesuaikan sintesis CDK tumpukan untuk menggunakan kualifikasi yang sama.
Untuk mengubah qualifier, konfigurasikan qualifier
properti DefaultStackSynthesizer
atau konfigurasikan qualifier sebagai kunci konteks dalam file CDK project Anda. cdk.json
Berikut ini adalah contoh konfigurasi qualifier
properti dari: DefaultStackSynthesizer
Berikut ini adalah contoh konfigurasi qualifier sebagai kunci konteks di: cdk.json
{ "app": "...", "context": { "@aws-cdk/core:bootstrapQualifier": "MYQUALIFIER" } }
Ubah nama sumber daya
Semua DefaultStackSynthesizer
properti lainnya berhubungan dengan nama-nama sumber daya dalam template bootstrap. Anda hanya perlu menyediakan salah satu properti ini jika Anda memodifikasi template bootstrap dan mengubah nama sumber daya atau skema penamaan.
Semua properti menerima placeholder khusus${Qualifier}
,, ${AWS::Partition}
${AWS::AccountId}
, dan. ${AWS::Region}
Placeholder ini diganti dengan nilai qualifier
parameter dan AWS partisi, ID akun, dan Wilayah AWS nilai untuk lingkungan tumpukan, masing-masing.
Contoh berikut menunjukkan properti yang paling umum digunakan DefaultStackSynthesizer
bersama dengan nilai defaultnya, seolah-olah Anda membuat instance synthesizer. Untuk daftar lengkap, lihat DefaultStackSynthesizerProps:
Gunakan CliCredentialsStackSynthesizer
Untuk memodifikasi kredenal keamanan yang digunakan untuk memberikan izin selama CDK penerapan, Anda dapat menyesuaikan sintesis dengan menggunakan. CliCredentialsStackSynthesizer
Synthesizer ini bekerja dengan AWS sumber daya default yang dibuat selama bootstrap untuk menyimpan aset, seperti bucket Amazon S3 dan repositori Amazon. ECR Alih-alih menggunakan IAM peran default yang dibuat oleh CDK selama bootstrap, ia menggunakan kredensil keamanan aktor yang memulai penerapan. Oleh karena itu, kredensi keamanan aktor harus memiliki izin yang valid untuk melakukan semua tindakan penerapan. Diagram berikut menggambarkan proses penyebaran saat menggunakan synthesizer ini:
Saat menggunakanCliCredentialsStackSynthesizer
:
-
Secara default, CloudFormation melakukan API panggilan di akun Anda menggunakan izin aktor. Oleh karena itu, identitas saat ini harus memiliki izin untuk membuat perubahan yang diperlukan pada AWS sumber daya di CloudFormation tumpukan, bersama dengan izin untuk melakukan CloudFormation operasi yang diperlukan, seperti
CreateStack
atauUpdateStack
. Kemampuan penyebaran akan terbatas pada izin aktor. -
Penerbitan dan CloudFormation penerapan aset akan dilakukan dengan menggunakan identitas saat iniIAM. Identitas ini harus memiliki izin yang cukup untuk membaca dari dan menulis ke bucket aset dan repositori.
-
Pencarian dilakukan menggunakan IAM identitas saat ini, dan pencarian tunduk pada kebijakannya.
Saat menggunakan synthesizer ini, Anda dapat menggunakan peran CloudFormation eksekusi terpisah dengan menentukannya menggunakan opsi dengan apa pun --role-arn
CDK CLI perintah.
CliCredentialsStackSynthesizer
kontrak bootstrap
CliCredentialsStackSynthesizer
membutuhkan kontrak bootstrap berikut. Ini adalah sumber daya yang harus dibuat selama bootstrap:
Sumber daya Bootstrap | Deskripsi | Nama sumber daya yang diharapkan default | Tujuan |
---|---|---|---|
Bucket Amazon S3 |
Ember pementasan |
cdk-hnb659fds-aset- |
Menyimpan aset file. |
ECRRepositori Amazon |
Repositori pementasan |
cdk-hnb659 - fds-container-assets |
Menyimpan dan mengelola Docker aset gambar. |
String hnb659fds
dalam nama sumber daya disebut qualifier. Nilai defaultnya tidak memiliki signifikansi khusus. Anda dapat memiliki banyak salinan sumber daya bootstrap dalam satu lingkungan selama mereka memiliki kualifikasi yang berbeda. Memiliki banyak salinan dapat berguna untuk menjaga aset aplikasi yang berbeda di lingkungan yang sama terpisah.
Anda dapat menerapkan template bootstrap default untuk memenuhi CliCredentialsStackSynthesizer
kontrak bootstrap. Template bootstrap default akan membuat IAM peran, tetapi synthesizer ini tidak akan menggunakannya. Anda juga dapat menyesuaikan template bootstrap untuk menghapus IAM peran.
Memodifikasi CliCredentialsStackSynthesizer
Jika Anda mengubah qualifier atau salah satu nama sumber daya bootstrap default selama bootstrap, Anda harus memodifikasi synthesizer untuk menggunakan nama yang sama. Anda dapat memodifikasi synthesizer untuk satu tumpukan atau untuk semua tumpukan di aplikasi Anda. Berikut adalah contohnya:
Contoh berikut menunjukkan properti yang paling umum digunakan untuk CliCredentialsStackSynthesizer
bersama dengan nilai default mereka. Untuk daftar lengkap, lihat CliCredentialsStackSynthesizerProps:
Gunakan LegacyStackSynthesizer
LegacyStackSynthesizer
Mengemulasi perilaku penerapan CDK v1. Kredensi keamanan aktor yang melakukan penyebaran akan digunakan untuk menetapkan izin. Aset file akan diunggah ke bucket yang harus dibuat menggunakan AWS CloudFormation tumpukan bernamaCDKToolkit
. The CDK CLI akan membuat ECR repositori Amazon yang tidak dikelola bernama untuk disimpan aws-cdk/assets
Docker aset gambar. Anda akan bertanggung jawab untuk membersihkan dan mengelola repositori ini. Tumpukan yang disintesis menggunakan hanya LegacyStackSynthesizer
dapat digunakan menggunakan CDK CLI.
Anda dapat menggunakan LegacyStackSynthesizer
jika Anda bermigrasi dari CDK v1 ke CDK v2, dan tidak dapat mem-bootstrap ulang lingkungan Anda. Untuk proyek baru, kami sarankan Anda tidak menggunakannyaLegacyStackSynthesizer
.
LegacyStackSynthesizer
kontrak bootstrap
LegacyStackSynthesizer
membutuhkan kontrak bootstrap berikut. Ini adalah sumber daya yang harus dibuat selama bootstrap:
Sumber daya Bootstrap | Deskripsi | Nama sumber daya yang diharapkan default | Tujuan |
---|---|---|---|
Bucket Amazon S3 |
Ember pementasan |
cdk-hnb659fds-aset- |
Menyimpan aset file. |
CloudFormation keluaran |
Keluaran nama ember |
Tumpukan — Nama keluaran — |
CloudFormation Output yang menjelaskan nama ember pementasan |
LegacyStackSynthesizer
Itu tidak mengasumsikan keberadaan bucket Amazon S3 dengan nama tetap. Sebagai gantinya, CloudFormation template yang disintesis akan berisi tiga CloudFormation parameter untuk setiap aset file. Parameter ini akan menyimpan nama bucket Amazon S3, kunci objek Amazon S3, dan hash artefak untuk setiap aset file.
Docker aset gambar akan dipublikasikan ke ECR repositori Amazon bernama. aws-cdk/assets
Nama ini dapat diubah per aset. Repositori akan dibuat jika tidak ada.
CloudFormation Tumpukan harus ada dengan nama defaultCDKToolkit
. Tumpukan ini harus memiliki nama CloudFormation ekspor BucketName
yang mengacu pada bucket pementasan.
Template bootstrap default memenuhi kontrak LegacyStackSynthesizer
bootstrap. Namun, hanya bucket Amazon S3 dari sumber daya bootstrap template bootstrap yang akan digunakan. Anda dapat menyesuaikan template bootstrap untuk menghapus AmazonECR,IAM, dan sumber daya SSM bootstrap.
LegacyStackSynthesizer
proses penyebaran
Saat Anda menggunakan synthesizer ini, proses berikut dilakukan selama penerapan:
-
The CDK CLI mencari CloudFormation tumpukan bernama
CDKToolkit
di lingkungan Anda. Dari tumpukan ini, CDK CLI membaca CloudFormation output bernamaBucketName
. Anda dapat menggunakan--toolkit-stack-name
opsi dengancdk deploy
untuk menentukan nama tumpukan yang berbeda. -
Kredensi keamanan aktor yang memulai penerapan akan digunakan untuk menetapkan izin untuk penerapan. Oleh karena itu, aktor harus memiliki izin yang cukup untuk melakukan semua tindakan penerapan. Ini termasuk membaca dan menulis ke bucket pementasan Amazon S3, membuat dan menulis ke ECR repositori Amazon, memulai dan memantau AWS CloudFormation penerapan, dan melakukan panggilan apa pun yang diperlukan untuk penerapan. API
-
Jika perlu, dan jika izin valid, aset file akan dipublikasikan ke bucket pementasan Amazon S3.
-
Jika perlu, dan jika izin valid, Docker aset gambar dipublikasikan ke repositori yang dinamai oleh
repositoryName
properti aset. Nilai default adalah'aws-cdk/assets'
jika Anda tidak memberikan nama repositori. -
Jika izin valid, AWS CloudFormation penerapan dilakukan. Lokasi bucket dan kunci pementasan Amazon S3 diteruskan sebagai parameter. CloudFormation