cdk deploy - AWS Cloud Development Kit (AWS CDK) v2

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.

cdk deploy

Menyebarkan satu atau lebih AWS CDK tumpukan ke lingkungan Anda AWS .

Selama penyebaran, 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>

Pendapat

ID logis tumpukan CDK

ID logis tumpukan CDK dari aplikasi Anda untuk diterapkan.

Tipe: String

Wajib: Tidak

Opsi

Untuk daftar opsi global yang berfungsi dengan semua CLI perintah CDK, lihatOpsi global.

--all BOOLEAN

Terapkan semua tumpukan di aplikasi CDK Anda.

Nilai default: false

--asset-parallelism BOOLEAN

Tentukan apakah akan membangun dan mempublikasikan aset secara paralel.

--asset-prebuild BOOLEAN

Tentukan apakah akan membangun semua aset sebelum menerapkan tumpukan pertama. Opsi ini berguna untuk Docker build 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 set AWS CloudFormation perubahan yang akan 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 Akun AWS tarif lainnya.

Berikan nomor untuk menentukan jumlah maksimum penerapan simultan (izin ketergantungan) untuk dilakukan.

Nilai default: 1

--exclusively, -e BOOLEAN

Hanya terapkan tumpukan yang diminta dan jangan sertakan dependensi.

--force, -f BOOLEAN

Saat Anda menerapkan untuk memperbarui tumpukan yang ada, CDK CLI akan membandingkan template dan tag tumpukan yang diterapkan ke 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 deploy perintah.

--hotswap BOOLEAN

Penerapan Hotswap untuk pengembangan yang lebih cepat. Opsi ini mencoba melakukan penyebaran hotswap yang lebih cepat jika memungkinkan. Misalnya, jika Anda memodifikasi kode fungsi Lambda di aplikasi CDK Anda, CDK CLI 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 mundur, gunakan sebagai --hotswap-fallback gantinya.

CDK CLI menggunakan AWS kredensil Anda saat ini untuk melakukan panggilan API. Itu tidak mengambil peran dari tumpukan bootstrap Anda, bahkan jika flag @aws-cdk/core:newStyleStackSynthesis fitur disetel ketrue. Peran tersebut tidak memiliki izin yang diperlukan untuk memperbarui AWS sumber daya secara langsung, tanpa menggunakan CloudFormation. Untuk alasan itu, pastikan kredensil Anda sama Akun AWS dengan tumpukan yang Anda lakukan terhadap penerapan hotswap dan bahwa mereka memiliki izin IAM yang diperlukan untuk memperbarui sumber daya.

Hotswapping saat ini didukung untuk perubahan berikut:

  • Aset kode (termasuk Docker gambar dan kode sebaris), perubahan tag, dan perubahan konfigurasi (hanya deskripsi dan variabel lingkungan yang didukung) dari fungsi Lambda.

  • Versi Lambda dan alias berubah.

  • Perubahan definisi mesin AWS Step Functions negara.

  • Perubahan aset kontainer dari layanan Amazon ECS.

  • Perubahan aset situs web dari penerapan bucket Amazon S3.

  • Perubahan sumber dan lingkungan AWS CodeBuild proyek.

  • Template pemetaan VTL berubah untuk AWS AppSync resolver dan fungsi.

  • Perubahan skema untuk AWS AppSync GraphQL API.

Penggunaan fungsi CloudFormation intrinsik tertentu didukung sebagai bagian dari penyebaran hotswapped. Ini termasuk:

  • Ref

  • Fn::GetAtt— Hanya didukung sebagian. Lihat implementasi ini untuk sumber daya dan atribut 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 di CloudFormation tumpukan untuk mempercepat penerapan. Untuk alasan ini, gunakan hanya untuk tujuan pengembangan. Jangan gunakan opsi ini untuk penerapan produksi Anda.

  • Opsi ini dianggap eksperimental dan mungkin memiliki perubahan yang melanggar di masa depan.

  • Default untuk parameter tertentu mungkin berbeda dengan parameter hotswap. Misalnya, persentase kesehatan minimum layanan Amazon ECS saat ini akan ditetapkan. 0 Tinjau sumbernya sesuai jika ini terjadi.

Nilai default: false

--hotswap-fallback BOOLEAN

Opsi ini mirip dengan--hotswap. Perbedaannya adalah itu --hotswap-fallback akan mundur untuk melakukan CloudFormation penerapan penuh 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 dev danprod. Saat memulai pengembangan, aplikasi prod Anda mungkin tidak memiliki sumber daya apa pun, atau sumber daya dapat dikomentari. Ini akan menghasilkan kesalahan penerapan dengan pesan yang menyatakan bahwa aplikasi tidak memiliki tumpukan. Gunakan --ignore-no-stacks untuk melewati kesalahan ini.

Nilai default: false

--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 penyebaran.

  • change-set— Metode default. CDK CLI membuat set CloudFormation perubahan dengan perubahan yang akan diterapkan, lalu melakukan penerapan.

  • direct— Jangan membuat set perubahan. Sebaliknya, terapkan perubahan segera. Ini biasanya lebih cepat daripada membuat set perubahan, tetapi Anda kehilangan informasi kemajuan.

  • prepare-change-set— Buat set perubahan tetapi tidak melakukan penerapan. Ini berguna jika Anda memiliki alat eksternal yang akan memeriksa set perubahan atau jika Anda memiliki proses persetujuan untuk set perubahan.

Nilai yang valid:change-set,direct, prepare-change-set

Nilai default: change-set

--notification-arns ARRAY

ARN topik Amazon SNS CloudFormation yang akan memberi tahu untuk acara terkait tumpukan.

--outputs-file, -O STRING

Jalur ke mana output 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.json file proyek atau ~/.cdk.json di 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

Lewati parameter tambahan CloudFormation selama penerapan.

Opsi ini menerima array dalam format berikut:STACK:KEY=VALUE.

  • STACK— Nama tumpukan untuk mengaitkan parameter dengan.

  • KEY— Nama parameter dari tumpukan Anda.

  • VALUE— Nilai yang harus dilewati 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. NestedStack

Nilai default: {}

--previous-parameters BOOLEAN

Gunakan nilai sebelumnya untuk parameter yang ada.

Ketika opsi ini diatur kefalse, Anda harus menentukan semua parameter pada setiap penerapan.

Nilai default: true

--progress STRING

Konfigurasikan bagaimana CDK CLI menampilkan kemajuan penerapan.

  • bar— Tampilkan peristiwa penyebaran 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.json file proyek atau ~/.cdk.json di mesin pengembangan lokal Anda:

{ "progress": "events" }

Nilai valid: bar, events

Nilai default: bar

--require-approval STRING

Tentukan perubahan sensitif keamanan 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, never

Nilai default: broadening

--rollback BOOLEAN

Selama penerapan, jika sumber daya gagal dibuat atau diperbarui, penerapan akan kembali ke status stabil terbaru sebelum CLI CDK kembali. Semua perubahan yang dibuat sampai saat itu akan dibatalkan. Sumber daya yang dibuat akan dihapus dan pembaruan yang dibuat akan diputar kembali.

Tentukan false untuk menonaktifkan perilaku ini. Jika sumber daya gagal dibuat atau diperbarui, CDK CLI akan meninggalkan perubahan yang dibuat hingga saat itu dan kembali. Ini mungkin membantu dalam lingkungan pengembangan di mana Anda melakukan iterasi dengan cepat.

Untuk--rollback=false, Anda dapat menggunakan --no-rollback atau-R.

catatan

Kapanfalse, 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: true

--toolkit-stack-name STRING

Nama tumpukan CDK Toolkit yang ada.

Opsi ini hanya digunakan untuk aplikasi CDK yang menggunakan sintesis lama.

--watch BOOLEAN

Terus amati file proyek CDK, dan gunakan tumpukan yang ditentukan secara otomatis saat perubahan terdeteksi.

Opsi ini menyiratkan secara --hotswap default.

Opsi ini memiliki CLI perintah CDK yang setara. Untuk informasi selengkapnya, lihat cdk watch.

Contoh

Menyebarkan tumpukan bernama MyStackName

$ cdk deploy MyStackName --app='node bin/main.js'

Menerapkan beberapa tumpukan dalam aplikasi

Gunakan cdk list untuk membuat daftar tumpukan Anda:

$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3

Untuk menyebarkan semua tumpukan, gunakan opsi: --all

$ cdk deploy --all

Untuk memilih tumpukan mana yang akan diterapkan, berikan nama tumpukan sebagai argumen:

$ cdk deploy CdkHelloWorldStack CdkStack3

Menyebarkan 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 menyebarkan semua tumpukan. Jika Anda memiliki hierarki tumpukan seperti dijelaskan di atas, --all dan hanya * akan cocok tumpukan di tingkat atas. Untuk mencocokkan semua tumpukan dalam hierarki, gunakan. **

Anda dapat menggabungkan pola-pola ini. Berikut ini menyebarkan semua tumpukan di panggung: Prod

$ cdk deploy PipelineStack/Prod/**

Lulus parameter saat penerapan

Tentukan parameter di tumpukan CDK Anda. Berikut ini adalah contoh yang membuat parameter bernama 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, });

Menyebarkan tumpukan dan menulis output ke: outputs.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 dari 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" } }

Memodifikasi 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, set perubahan bernama cdk-deploy-change-set akan dibuat. Jika perubahan sebelumnya yang ditetapkan dengan nama ini ada, itu akan ditimpa. Jika tidak ada perubahan yang terdeteksi, set perubahan kosong masih dibuat.

Anda juga dapat memberi nama set perubahan Anda. Berikut adalah contohnya:

$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'