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 AWS CloudFormation konsol.
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
- CDKID tumpukan
-
ID konstruksi CDK tumpukan dari aplikasi Anda untuk diterapkan.
Tipe: String
Wajib: Tidak
Opsi
Untuk daftar opsi global yang berfungsi dengan semua CDK CLI perintah, lihatOpsi global.
--all
BOOLEAN
-
Menerapkan semua tumpukan di aplikasi AndaCDK.
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 gagal Docker membangun.
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 diatur untuk membuat.
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 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 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 mengubah kode fungsi Lambda di CDK aplikasi Anda, CDK CLI akan memperbarui sumber daya secara langsung melalui layanan APIs alih-alih melakukan CloudFormation penerapan.
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.The CDK CLI menggunakan AWS kredensi 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 yang diperlukan untuk IAM 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 ECS layanan Amazon.
-
Perubahan aset situs web dari penerapan bucket Amazon S3.
-
Perubahan sumber dan lingkungan AWS CodeBuild proyek.
-
VTLperubahan template pemetaan untuk AWS AppSync resolver dan fungsi.
-
Perubahan skema untuk AWS AppSync GraphQL APIs.
Penggunaan fungsi CloudFormation intrinsik tertentu didukung sebagai bagian dari penyebaran hotswapped. Ini termasuk:
-
Ref
-
Fn::GetAtt
— Hanya didukung sebagian. Lihat implementasi iniuntuk 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 ECS layanan Amazon 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 CDK aplikasi 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. The 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
-
ARNsSNSTopik Amazon yang CloudFormation 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 JSON format.
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 ke
false
, 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. -
broadening
Persetujuan 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
|--no-rollback
,-R
-
Selama penerapan, jika sumber daya gagal dibuat atau diperbarui, penerapan akan kembali ke status stabil terbaru sebelum CDK CLI kembali. Semua perubahan yang dibuat sampai saat itu akan dibatalkan. Sumber daya yang dibuat akan dihapus dan pembaruan yang dibuat akan diputar kembali.
Tentukan
--no-rollback
untuk mematikan perilaku ini. Jika sumber daya gagal dibuat atau diperbarui, CDK CLI akan meninggalkan perubahan yang dibuat sampai saat itu 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 melakukan iterasi dengan cepat.Jika penerapan dilakukan dengan
--no-rollback
gagal, dan Anda memutuskan bahwa Anda ingin mengembalikan penerapan, Anda dapat menggunakan perintah tersebut.cdk rollback
Untuk informasi selengkapnya, lihat cdk rollback.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 bootstrap
menyebarkan tumpukan bernamaCDKToolkit
ke dalam AWS lingkungan yang ditentukan. Gunakan opsi ini untuk memberikan nama yang berbeda untuk tumpukan bootstrap Anda.The CDK CLI menggunakan nilai ini untuk memverifikasi versi stack bootstrap Anda.
--watch
BOOLEAN
-
Terus amati file CDK proyek, dan gunakan tumpukan yang ditentukan secara otomatis saat perubahan terdeteksi.
Opsi ini menyiratkan secara
--hotswap
default.Opsi ini memiliki ekuivalen CDK CLI perintah. 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 CDK tumpukan Anda. Berikut ini adalah contoh yang membuat parameter bernama TopicNameParam
untuk SNS topik Amazon:
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 CDK tumpukan Anda. Berikut ini adalah contoh yang membuat output untuk suatu fungsiARN:
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'