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.
penyebaran cdk
Terapkan satu atau lebih tum AWS pukan CDK ke lingkungan Anda AWS .
Selama penerapan, CDK CLI akan menampilkan indikator kemajuan, mirip dengan apa yang dapat diamati dari konsol. AWS CloudFormation
Jika AWS lingkungan tidak di-bootstrap, hanya tumpukan tanpa aset dan dengan templat yang disintesis di bawah 51.200 byte yang akan berhasil diterapkan.
Penggunaan
$ cdk deploy <arguments> <options>
Argumen
- ID tumpukan CDK
-
ID konstruksi tumpukan CDK dari aplikasi Anda untuk diterapkan.
Tipe: String
Wajib: Tidak
Opsi
Untuk daftar opsi global yang bekerja dengan semua perintah CDK CLI, lihat Opsi global.
-
--all <BOOLEAN> -
Terapkan semua tumpukan di aplikasi CDK Anda.
Nilai default:
false
-
--asset-parallelism <BOOLEAN> -
Tentukan apakah akan membangun dan menerbitkan aset secara paralel.
-
--asset-prebuild <BOOLEAN> -
Tentukan apakah akan membangun semua aset sebelum menerapkan tumpukan pertama. Opsi ini berguna untuk build Docker yang gagal.
Nilai default:
true
-
--build-exclude, -E <ARRAY> -
Jangan membangun kembali aset dengan ID yang diberikan.
Opsi ini dapat ditentukan beberapa kali dalam satu perintah.
Nilai default:
[]
-
--change-set-name <STRING> -
Nama AWS CloudFormation perubahan yang ditetapkan untuk dibuat.
Opsi ini tidak kompatibel dengan
--method='direct'.
-
--concurrency <NUMBER> -
Terapkan beberapa tumpukan secara paralel sambil memperhitungkan dependensi antar tumpukan. Gunakan opsi ini untuk mempercepat penerapan. Anda masih harus memperhitungkan AWS CloudFormation dan membatasi AWS tarif akun lainnya.
Berikan nomor untuk menentukan jumlah maksimum penerapan simultan (ketergantungan memungkinkan) untuk dilakukan.
Nilai default:
1
-
--exclusively, -e <BOOLEAN> -
Hanya menerapkan tumpukan yang diminta dan jangan sertakan dependensi.
-
--express <BOOLEAN> -
Terapkan menggunakan mode CloudFormation ekspres. Mode ekspres memungkinkan penerapan yang lebih cepat CloudFormation melalui pelaporan operasi tumpukan setelah selesai segera setelah CloudFormation menerapkan konfigurasi sumber daya. Namun, CloudFormation laporan berhasil tanpa menunggu sumber daya stabil. Selain itu, mode ekspres tidak melakukan rollback secara otomatis dan akan meninggalkan tumpukan dalam keadaan gagal jika terjadi kesalahan. Untuk mengaktifkan rollback otomatis dengan mode ekspres, sertakan
--rollbackbendera dalam penerapan mode ekspres Anda.Untuk informasi selengkapnya, lihat mode ekspres di Panduan AWS CloudFormation Pengguna.
catatan
Mode ekspres tidak menunggu stabilisasi sebelum melaporkan keberhasilan dan tidak melakukan rollback otomatis setelah kegagalan. Kami tidak merekomendasikan mode ekspres untuk penerapan produksi. Mode ekspres ditargetkan untuk penerapan berulang yang akan Anda lakukan saat mengembangkan aplikasi Anda.
Nilai default:
false
-
--force, -f <BOOLEAN> -
Saat Anda menerapkan untuk memperbarui tumpukan yang ada, CDK CLI akan membandingkan template dan tag dari tumpukan yang digunakan dengan tumpukan yang akan digunakan. Jika tidak ada perubahan yang terdeteksi, CDK CLI akan melewati penerapan.
Untuk mengganti perilaku ini dan selalu menerapkan tumpukan, meskipun tidak ada perubahan yang terdeteksi, gunakan opsi ini.
Nilai default:
false
-
--help, -h <BOOLEAN> -
Tampilkan informasi referensi perintah untuk
cdk deployperintah tersebut.
-
--hotswap <BOOLEAN> -
Penerapan Hotswap untuk pengembangan yang lebih cepat. Opsi ini mencoba melakukan penerapan hotswap yang lebih cepat jika memungkinkan. Misalnya, jika Anda memodifikasi kode fungsi Lambda di aplikasi CDK, CLI CDK akan memperbarui sumber daya secara langsung melalui API layanan alih-alih melakukan penerapan. CloudFormation
Jika CDK CLI mendeteksi perubahan yang tidak mendukung hotswapping, perubahan tersebut akan diabaikan dan pesan akan ditampilkan. Jika Anda lebih suka melakukan CloudFormation penerapan penuh sebagai cadangan, gunakan sebagai gant
--hotswap-fallbackinya.CDK CLI menggunakan AWS kredenSIAL Anda saat ini untuk melakukan panggilan API. Itu tidak mengambil peran dari tumpukan bootstrap Anda, bahkan jika flag
@aws-cdk/core:newStyleStackSynthesisfitur disetel ketrue. Peran-peran tersebut tidak memiliki izin yang diperlukan untuk memperbarui AWS sumber daya secara langsung, tanpa menggunakan CloudFormation. Untuk alasan itu, pastikan kredensibilitas Anda untuk AWS akun yang sama dari tumpukan tempat Anda melakukan penerapan hotswap dan bahwa mereka memiliki izin IAM yang diperlukan untuk memperbarui sumber daya.Hotswapping saat ini didukung untuk perubahan berikut:
-
Aset kode (termasuk gambar Docker dan kode sebaris), perubahan tag, dan perubahan konfigurasi (hanya deskripsi dan variabel lingkungan yang didukung) fungsi Lambda.
-
Versi lambda dan perubahan alias.
-
Perubahan definisi mesin status Fungsi AWS Langkah.
-
Perubahan aset kontainer layanan Amazon ECS.
-
Perubahan aset situs web dari penerapan bucket Amazon S3.
-
Perubahan sumber dan lingkungan AWS CodeBuild proyek.
-
Perubahan template pemetaan VTL untuk AWS AppSync resolver dan fungsi.
-
Perubahan skema untuk AWS AppSync GraphQL API.
-
REST API, penerapan, dan perubahan metode untuk Amazon API Gateway.
-
Perubahan API dan integrasi untuk Amazon API Gateway V2.
-
Perubahan konfigurasi agen Amazon Bedrock.
-
Perubahan konfigurasi Amazon Bedrock Runtime AgentCore
-
Perubahan aturan untuk Amazon EventBridge.
-
Perubahan konfigurasi tabel Amazon DynamoDB dan tabel global.
-
Perubahan konfigurasi antrian Amazon SQS.
-
Alarm, alarm komposit, dan perubahan dasbor untuk Amazon CloudWatch.
Penggunaan fungsi CloudFormation intrinsik tertentu didukung sebagai bagian dari penyebaran hotswap. Ini termasuk:
-
Ref -
Fn::GetAtt- Hanya didukung sebagian, menggunakan kombinasi Cloud Control API dan implementasi khusus. Lihat daftar sumber daya yang didukung oleh Cloud Control API dan implementasi iniuntuk daftar lengkap sumber daya yang didukung. -
Fn::ImportValue -
Fn::Join -
Fn::Select -
Fn::Split -
Fn::Sub
Opsi ini juga kompatibel dengan tumpukan bersarang.
catatan
-
Opsi ini sengaja memperkenalkan drift dalam CloudFormation tumpukan untuk mempercepat penerapan. Untuk alasan ini, hanya menggunakannya untuk tujuan pengembangan. Jangan gunakan opsi ini untuk penerapan produksi Anda.
-
Default untuk parameter tertentu mungkin berbeda dengan parameter hotswap. Misalnya, persentase sehat minimum layanan Amazon ECS saat ini akan ditetapkan pada
0. Tinjau sumbernya jika ini terjadi. -
Saat melakukan penerapan setelah CloudFormation penerapan hotswap, gunakan
cdk deploy --revert-driftuntuk menerapkan dengan set perubahan yang sadar drift dan merekonsiliasi penyimpangan apa pun yang diperkenalkan oleh hotswapping.
Nilai default:
false -
-
--hotswap-fallback <BOOLEAN> -
Opsi ini mirip dengan
--hotswap. Perbedaannya adalah bahwa--hotswap-fallbackakan kembali untuk melakukan CloudFormation penerapan jika perubahan terdeteksi yang membutuhkannya.Untuk informasi selengkapnya tentang metrik ini, lihat
--hotswap.Nilai default:
false
-
--ignore-no-stacks <BOOLEAN> -
Lakukan penerapan meskipun aplikasi CDK Anda tidak berisi tumpukan apa pun.
Opsi ini berguna dalam skenario berikut: Anda mungkin memiliki aplikasi dengan beberapa lingkungan, seperti
devdanprod. Saat memulai pengembangan, aplikasi prod Anda mungkin tidak memiliki sumber daya apa pun, atau sumber daya dapat dikomentari. Ini akan mengakibatkan kesalahan penerapan dengan pesan yang menyatakan bahwa aplikasi tidak memiliki tumpukan. Gunakan--ignore-no-stacksuntuk melewati kesalahan ini.Nilai default:
false
-
--import-existing-resources <BOOLEAN> -
Impor AWS CloudFormation sumber daya yang sudah ada dan tidak dikelola dari AWS akun Anda.
Saat Anda menggunakan opsi ini, sumber daya dari AWS CloudFormation template yang disintesis dengan nama kustom yang sama dengan sumber daya yang tidak dikelola yang ada di akun yang sama akan diimpor ke tumpukan Anda.
Anda dapat menggunakan opsi ini untuk mengimpor sumber daya yang ada ke tumpukan baru atau yang sudah ada.
Anda dapat mengimpor sumber daya yang ada dan menyebarkan sumber daya baru dalam
cdk deployperintah yang sama.Untuk mempelajari lebih lanjut tentang nama khusus, lihat Jenis nama di Panduan AWS CloudFormation Pengguna.
Untuk mempelajari lebih lanjut tentang
ImportExistingResourcesCloudFormation parameter, lihat AWS CloudFormation menyederhanakan impor sumber daya dengan parameter baru untuk ChangeSets. Untuk informasi selengkapnya tentang menggunakan opsi ini, lihat Meng impor sumber daya yang ada
di repositori aws-cd GitHub k-cli.
-
--logs <BOOLEAN> -
Tampilkan CloudWatch log Amazon di output standar (
stdout) untuk semua peristiwa dari semua sumber daya di tumpukan yang dipilih.Opsi ini hanya kompatibel dengan
--watch.Nilai default:
true
-
--method, -m <STRING> -
Konfigurasikan metode untuk melakukan penerapan.
-
change-set— Metode default. CDK CLI membuat set CloudFormation perubahan dengan perubahan yang akan diterapkan, kemudian melakukan penerapan. -
direct— Jangan membuat set perubahan. Sebaliknya, terapkan perubahan segera. Ini biasanya lebih cepat daripada membuat set perubahan, tetapi Anda kehilangan detail kemajuan penerapan dalam output CLI. -
prepare-change-set— Buat set perubahan tetapi jangan lakukan penerapan. Ini berguna jika Anda memiliki alat eksternal yang akan memeriksa set perubahan atau jika Anda memiliki proses persetujuan untuk set perubahan. Gunakanexecute-change-setuntuk mengeksekusi set perubahan yang disiapkan. -
execute-change-set— Jalankan set perubahan yang sebelumnya dibuat denganprepare-change-set. Nama set perubahan default menjadicdk-deploy-change-set, atau Anda dapat menentukan nama khusus dengan--change-set-name.
Nilai yang valid:
change-set,direct,execute-change-set,prepare-change-setNilai default:
change-set -
-
--notification-arns <ARRAY> -
Topik ARN Amazon SNS yang CloudFormation akan memberi tahu untuk peristiwa terkait tumpukan.
-
--outputs-file, -O <STRING> -
Jalur ke tempat keluaran tumpukan dari penerapan ditulis.
Setelah penerapan, output tumpukan akan ditulis ke file output yang ditentukan dalam format JSON.
Anda dapat mengonfigurasi opsi ini di
cdk.jsonfile proyek atau~/.cdk.jsondi mesin pengembangan lokal Anda:{ "app": "npx ts-node bin/myproject.ts", // ... "outputsFile": "outputs.json" }Jika beberapa tumpukan digunakan, output ditulis ke file output yang sama, diatur oleh kunci yang mewakili nama tumpukan.
-
--parameters <ARRAY> -
Berikan parameter tambahan ke CloudFormation selama penerapan.
Opsi ini menerima array dalam format berikut:
STACK:KEY=VALUE.-
STACK— Nama tumpukan untuk mengaitkan parameter. -
KEY— Nama parameter dari tumpukan Anda. -
VALUE— Nilai yang akan diteruskan saat penerapan.
Jika nama tumpukan tidak disediakan, atau jika
*disediakan sebagai nama tumpukan, parameter akan diterapkan ke semua tumpukan yang digunakan. Jika tumpukan tidak menggunakan parameter, penerapan akan gagal.Parameter tidak menyebar ke tumpukan bersarang. Untuk meneruskan parameter ke tumpukan bersarang, gunakan konstruksi.
NestedStackNilai default:
{} -
-
--previous-parameters <BOOLEAN> -
Gunakan nilai sebelumnya untuk parameter yang ada.
Ketika opsi ini disetel ke
false, Anda harus menentukan semua parameter pada setiap penerapan.Nilai default:
true
-
--progress <STRING> -
Konfigurasikan cara CDK CLI menampilkan kemajuan penerapan.
-
bar— Menampilkan peristiwa penerapan tumpukan sebagai bilah kemajuan, dengan peristiwa untuk sumber daya yang saat ini sedang digunakan. -
events— Berikan riwayat lengkap, termasuk semua CloudFormation acara.
Anda juga dapat mengonfigurasi opsi ini di
cdk.jsonfile proyek atau~/.cdk.jsondi mesin pengembangan lokal Anda:{ "progress": "events" }Nilai valid:
bar,eventsNilai default:
bar -
-
--require-approval <STRING> -
Tentukan perubahan apa yang memerlukan persetujuan manual.
-
any-change- Persetujuan manual diperlukan untuk setiap perubahan pada tumpukan. -
broadeningPersetujuan manual diperlukan jika perubahan melibatkan perluasan izin atau aturan grup keamanan. -
never- Persetujuan tidak diperlukan.
Nilai yang valid:
any-change,broadening,neverNilai default:
broadening -
-
--revert-drift -
Gunakan set perubahan yang sesuai dengan drift-aware untuk penerapan. Ini membuat set perubahan dengan mode
REVERT_DRIFTpener CloudFormation apan, yang mendeteksi sumber daya yang telah hanyut dari definisi templat mereka karena perubahan di luar band dan mengembalikannya ke status yang diinginkan yang ditentukan dalam template Anda.Lihat dokumentasi Cloudformation tentang set perubahan yang sadar drift untuk informasi selengkapnya tentang cara kerjanya.
Nilai default:
false
-
--rollback|--no-rollback,-R -
Selama penerapan, jika sumber daya gagal dibuat atau diperbarui, penerapan akan dikembalikan ke status stabil terbaru sebelum CDK CLI kembali. Semua perubahan yang dilakukan hingga saat itu akan dibatalkan. Sumber daya yang dibuat akan dihapus dan pembaruan yang dibuat akan diputar kembali.
Tentukan
--no-rollbackuntuk mematikan perilaku ini. Jika sumber daya gagal dibuat atau diperbarui, CDK CLI akan membiarkan perubahan yang dibuat hingga saat itu tetap di tempatnya dan kembali. Ini akan membuat penerapan Anda dalam keadaan gagal dan dijeda. Dari sini, Anda dapat memperbarui kode Anda dan mencoba penerapan lagi. Ini mungkin membantu dalam lingkungan pengembangan di mana Anda mengulangi dengan cepat.Jika penerapan yang dilakukan dengan
--no-rollbackgagal, dan Anda memutuskan bahwa Anda ingin mengembalikan penerapan, Anda dapat menggunakancdk rollbackperintah. Untuk informasi selengkapnya, lihat cdk roll back.catatan
Dengan
--no-rollback, penerapan yang menyebabkan penggantian sumber daya akan selalu gagal. Anda hanya dapat menggunakan nilai opsi ini untuk penerapan yang memperbarui atau membuat sumber daya baru.Nilai default:
--rollback
-
--toolkit-stack-name <STRING> -
Nama tumpukan CDK Toolkit yang ada.
Secara default,
cdk bootstrapmenerapkan tumpukan bernamaCDKToolkitke AWS lingkungan yang ditentukan. Gunakan opsi ini untuk memberikan nama yang berbeda untuk tumpukan bootstrap Anda.CDK CLI menggunakan nilai ini untuk memverifikasi versi tumpukan bootstrap Anda.
-
--watch <BOOLEAN> -
Terus amati file proyek CDK, dan gunakan tumpukan yang ditentukan secara otomatis ketika perubahan terdeteksi.
Opsi ini menyiratkan
--hotswapsecara default.Opsi ini memiliki perintah CDK CLI yang setara. Untuk informasi lebih lanjut, lihat cdk watch.
Contoh
Terapkan tumpukan bernama MyStackName
$ cdk deploy MyStackName --app='node bin/main.js'
Menyebarkan beberapa tumpukan dalam aplikasi
Gunakan cdk list untuk membuat daftar tumpukan Anda:
$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3
Untuk menerapkan semua tumpukan, gunakan --all opsi:
$ cdk deploy --all
Untuk memilih tumpukan mana yang akan digunakan, berikan nama tumpukan sebagai argumen:
$ cdk deploy CdkHelloWorldStack CdkStack3
Terapkan tumpukan pipa
Gunakan cdk list untuk menampilkan nama tumpukan sebagai jalur, menunjukkan di mana mereka berada dalam hierarki pipeline:
$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService
Gunakan --all opsi atau wildcard * untuk menerapkan semua tumpukan. Jika Anda memiliki hierarki tumpukan seperti yang dijelaskan di atas, --all dan hanya * akan mencocokkan tumpukan di tingkat atas. Untuk mencocokkan semua tumpukan dalam hierarki, gunakan**.
Anda dapat menggabungkan pola-pola ini. Berikut ini menerapkan semua tumpukan di panggung: Prod
$ cdk deploy PipelineStack/Prod/**
Luluskan parameter saat penerapan
Tentukan parameter dalam tumpukan CDK Anda. Berikut ini adalah contoh yang membuat parameter dinamai TopicNameParam untuk topik Amazon SNS:
new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });
Untuk memberikan nilai parameterparameterized, jalankan yang berikut ini:
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"
Anda dapat mengganti nilai parameter dengan menggunakan --force opsi. Berikut ini adalah contoh penggantian nama topik dari penerapan sebelumnya:
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force
Tulis output tumpukan ke file setelah penerapan
Tentukan output dalam file tumpukan CDK Anda. Berikut ini adalah contoh yang membuat output untuk fungsi ARN:
const fn = new lambda.Function(this, "fn", { handler: "index.handler", code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`), runtime: lambda.Runtime.NODEJS_LATEST }); new cdk.CfnOutput(this, 'FunctionArn', { value: fn.functionArn, });
Terapkan tumpukan dan tulis output keoutputs.json:
$ cdk deploy --outputs-file outputs.json
Berikut ini adalah contoh outputs.json setelah penerapan:
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }
Dari contoh ini, kunci FunctionArn sesuai dengan ID logis CfnOutput instance.
Berikut ini adalah contoh outputs.json setelah penerapan ketika beberapa tumpukan diterapkan:
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" }, "AnotherStack": { "VPCId": "vpc-z0mg270fee16693f" } }
Ubah metode penerapan
Untuk menerapkan lebih cepat, tanpa menggunakan set perubahan, gunakan--method='direct':
$ cdk deploy --method='direct'
Untuk membuat set perubahan tetapi tidak menerapkan, gunakan--method='prepare-change-set'. Secara default, kumpulan perubahan bernama cdk-deploy-change-set akan dibuat. Jika set perubahan sebelumnya dengan nama ini ada, itu akan diganti. Jika tidak ada perubahan yang terdeteksi, kumpulan perubahan kosong masih dibuat.
Anda juga dapat memberi nama set perubahan Anda. Berikut ini adalah contohnya:
$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'