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.
AWS Versi CDK
Topik ini memberikan informasi referensi tentang cara AWS Cloud Development Kit (AWS CDK) menangani pembuatan versi.
Nomor versi terdiri dari tiga bagian versi numerik: mayor. kecil. menambal, dan secara luas mengikuti prinsip pembuatan versi semantik dengan beberapa peringatan yang
Rilis minor dan patch kompatibel ke belakang. Kode yang ditulis dalam versi sebelumnya dengan versi utama yang sama dapat ditingkatkan ke versi yang lebih baru dalam versi utama yang sama. Ini akan terus membangun dan menjalankan, menghasilkan hasil yang setara secara fungsional. Untuk beberapa kasus penggunaan lanjutan, perubahan kecil pada kode Anda akan diperlukan seperti yang tercantum dalam topik berikutnya.
AWS Kompatibilitas CDK Toolkit
Setiap versi AWS Construct Library (aws-cdk-lib) utama kompatibel dengan versi AWS CDK Toolkit CLI aws-cdk-cli () dan Toolkit Library @aws-cdk/toolkit-lib () yang terkini pada saat rilis Construct Library. AWS Ini juga kompatibel dengan versi AWS CDK Toolkit yang lebih baru. Setiap versi Perpustakaan AWS Konstruksi mempertahankan kompatibilitas ini hingga tanggal Akhir Kehidupan perpustakaan. Oleh karena itu, selama Anda menggunakan versi AWS Construct Library yang didukung, selalu aman untuk meningkatkan versi AWS CDK Toolkit Anda.
Setiap versi AWS Construct Library mungkin juga bekerja dengan versi AWS CDK Toolkit yang lebih lama dari versi yang saat ini pada saat rilis AWS Construct Library. Namun, ini tidak dijamin. Kompatibilitas bergantung pada versi skema perakitan cloud AWS Construct Library. AWS CDK menghasilkan perakitan cloud selama sintesis dan AWS CDK Toolkit menggunakannya untuk penerapan. Skema yang mendefinisikan format perakitan cloud ditentukan dan berversi secara ketat. Oleh karena itu, versi AWS CDK Toolkit yang lebih lama perlu mendukung versi skema perakitan cloud dari Perpustakaan AWS Konstruksi agar kompatibel.
Jika versi perakitan cloud yang diperlukan oleh AWS Construct Library tidak kompatibel dengan versi yang didukung oleh AWS CDK Toolkit, Anda menerima pesan galat seperti berikut ini:
Cloud assembly schema version mismatch: Maximum schema version supported is 3.0.0, but found 4.0.0. Please upgrade your CLI in order to interact with this app.
Untuk mengatasi kesalahan ini, perbarui AWS CDK Toolkit ke versi yang kompatibel dengan versi perakitan cloud yang diperlukan, atau ke versi terbaru yang tersedia. Alternatifnya (menurunkan modul AWS Construct Library yang digunakan aplikasi Anda) umumnya tidak disarankan.
catatan
Untuk informasi selengkapnya tentang kombinasi yang tepat dari versi yang bekerja sama, lihat tabel kompatibilitas
AWS Membangun versi Perpustakaan
Modul-modul di AWS Construct Library bergerak melalui berbagai tahap saat dikembangkan dari konsep ke API yang matang. Tahapan yang berbeda menawarkan berbagai tingkat stabilitas API di versi AWS CDK berikutnya.
Kecuali untuk skenario di mana peringatan yang didokumentasikan dalam topik berikutnya berlaku, APIs di AWS Construct Library (aws-cdk-lib) utama stabil, dan perpustakaan secara luas mengikuti prinsip pembuatan versi semantik. Pustaka menyertakan konstruksi AWS CloudFormation (L1) untuk semua AWS layanan, yang dibuat secara otomatis dari skema penyedia CloudFormation sumber daya dan terkadang menyertakan pembaruan yang tidak kompatibel ke belakang. Ini juga mencakup konstruksi tingkat yang lebih tinggi (L2 dan L3) dan kelas CDK inti seperti App danStack, yang semuanya stabil. APIs tidak akan dihapus dari paket ini (meskipun mungkin tidak digunakan lagi) hingga rilis utama CDK berikutnya. Ketika perubahan yang melanggar diperlukan ke API stabil, API yang sama sekali baru akan ditambahkan.
Baru APIs dalam pengembangan untuk layanan yang sudah aws-cdk-lib dimasukkan diidentifikasi menggunakan Beta<N> akhiran, di mana N dimulai dari 1 dan ditambah dengan setiap perubahan yang melanggar ke API baru. Beta<N> APIs tidak pernah dihapus, hanya usang, sehingga aplikasi Anda yang ada terus bekerja dengan versi yang lebih baru. aws-cdk-lib Saat API dianggap stabil, API baru tanpa Beta<N> akhiran ditambahkan.
Ketika tingkat yang lebih tinggi (L2 atau L3) APIs mulai dikembangkan untuk AWS layanan yang sebelumnya hanya memiliki L1 APIs, mereka awalnya didistribusikan dalam APIs paket terpisah. Nama paket semacam itu memiliki akhiran “Alpha”, dan versinya cocok dengan versi pertama yang aws-cdk-lib kompatibel dengan, dengan alpha sub-versi. Ketika modul mendukung kasus penggunaan yang dimaksudkan, modul APIs ditambahkan keaws-cdk-lib.
AWS Klarifikasi versi semantik Construct Library
Sementara AWS Construct Library secara luas mengikuti prinsip pembuatan versi semantik, ada beberapa peringatan penting khusus untuk implementasi kami. Secara umum, AWS Construct Library mempertahankan stabilitas bagi konsumen API, tetapi terkadang menambahkan beban tambahan untuk membangun penulis guna memungkinkan evolusi kerangka kerja yang diperlukan.
-
Keamanan yang berdampak pada perubahan
Untuk memenuhi bilah keamanan kami, kami mungkin diminta untuk mengubah APIs dengan cara yang tidak kompatibel ke belakang atau menghapusnya sepenuhnya. Ini APIs mencegah terpengaruh digunakan dan memaksa implementasi diperbarui.
-
Fitur dijelaskan dengan niat
Kami bertujuan untuk meminimalkan perubahan yang tidak terduga, tetapi akan mendukung maksud daripada stabilitas implementasi. AWS Construct Library tidak menjamin bahwa konstruksi selalu mensintesis ke CloudFormation template yang sama persis atau menggunakan kumpulan sumber daya yang sama persis. Ini terutama berlaku untuk konstruksi tingkat yang lebih tinggi, di mana tujuan yang sama sering dapat dicapai dengan cara yang berbeda.
-
Menerapkan Antarmuka dan Kelas Abstrak
Antarmuka dan kelas abstrak di Perpustakaan AWS Konstruksi stabil untuk konsumen, tetapi tidak untuk pelaksana. Ini berarti bahwa Anda dapat dengan aman mengandalkan antarmuka seperti
s3.IBucketmenyediakan setidaknya fungsionalitas yang sama seperti pada saat itu (versi AWS Construct Library) yang Anda mulai menggunakan antarmuka atau kelas abstrak. Namun, secara berkala, anggota baru (abstrak) akan ditambahkan ke antarmuka dan kelas abstrak. Bagi siapa pun yang mengimplementasikannya, ini menciptakan beban implementasi tambahan untuk dipertimbangkan saat memutakhirkan, karena implementasinya belum akan mengimplementasikan anggota baru. Memperlakukan penambahan secara ketat pada antarmuka dan kelas abstrak untuk pelaksana karena melanggar perubahan akan terlalu membatasi kemampuan evolusi Perpustakaan Konstruksi. AWS Dalam kebanyakan kasus, pelaksana harus lebih memilih untuk memperluas kelas konkret sepertis3.Bucket. -
Konstruksi L1, kode yang dihasilkan, dan lainnya APIs ditandai sebagai eksternal
Bagian dari AWS Construct Library dihasilkan dari sumber data yang datang langsung dari AWS layanan. Agar ini tetap APIs selaras dengan kenyataan, kode yang dihasilkan mungkin berisi perubahan yang tidak kompatibel ke belakang. Sebagian besar waktu, sumber data diperbarui untuk mencerminkan realitas dengan benar dan memperbaiki representasi yang salah. IDE Anda IntelliSense akan menampilkan eksternal APIs dengan
@stability — externalanotasi. -
Binding bahasa tertentu
Binding bahasa dapat berisi perubahan yang tidak kompatibel ke belakang dalam jumlah situasi yang sangat terbatas. Ini disebabkan oleh perubahan tipe upstream yang kompatibel ke belakang dalam bahasa lain yang didukung. Perubahan tipe ini diizinkan, karena melakukan sebaliknya akan sangat membatasi kemampuan evolusi perpustakaan.
Daftar berikut menjelaskan semua contoh yang diketahui:
-
Golang - Mengubah dari irisan yang diketik ke irisan apa pun: Daftar satu jenis berubah menjadi daftar beberapa jenis (tipe gabungan di TypeScript). Dalam
Go, ini diketik sebagai sepotong dari any (*[]any). Karena aturan penetapan pengetikan Go, mengubah dari*[]stringkebukan konversi otomatis. Oleh karena itu, pelebaran jenis ini membutuhkan kode konsumen untuk berubah. Lihat Bekerja dengan potongan apa pun untuk strategi.
-
Stabilitas pengikatan bahasa
Seiring waktu, kami mungkin menambahkan dukungan ke AWS CDK untuk bahasa pemrograman tambahan. Meskipun API yang dijelaskan dalam semua bahasa adalah sama, cara API diekspresikan bervariasi menurut bahasa dan mungkin berubah seiring berkembangnya dukungan bahasa. Untuk alasan ini, binding bahasa dianggap eksperimental untuk sementara waktu sampai dianggap siap untuk digunakan produksi.
| Bahasa | Stabilitas |
|---|---|
|
TypeScript |
Stabil |
|
JavaScript |
Stabil |
|
Python |
Stabil |
|
Java |
Stabil |
|
C#/.NET |
Stabil |
|
Go |
Stabil |