

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 Referensi CDK
<a name="reference"></a>

Bagian ini berisi informasi referensi untuk AWS Cloud Development Kit (AWS CDK).

## Referensi API
<a name="reference-api"></a>

[Referensi API](https://docs.aws.amazon.com/cdk/api/v2) berisi informasi tentang AWS Construct Library dan lainnya yang APIs disediakan oleh AWS Cloud Development Kit (AWS CDK). Sebagian besar AWS Construct Library terkandung dalam satu paket yang disebut dengan TypeScript namanya:`aws-cdk-lib`. Nama paket sebenarnya bervariasi menurut bahasa. Versi terpisah dari referensi API disediakan untuk setiap bahasa pemrograman yang didukung.

Referensi CDK API diatur ke dalam sub-modul. Ada satu atau lebih sub-modul untuk setiap AWS layanan.

Setiap sub-modul memiliki ikhtisar yang mencakup informasi tentang cara menggunakannya. APIs Misalnya, ikhtisar [S3](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3-readme.html) menunjukkan cara menyetel enkripsi default pada bucket Amazon Simple Storage Service (Amazon S3).

# AWS Versi CDK
<a name="versioning"></a>

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](https://semver.org) dijelaskan dalam AWS klarifikasi versi semantik Perpustakaan Konstruksi.](https://docs.aws.amazon.com/cdk/v2/guide/versioning.html#aws-construct-lib-semver) Ini berarti bahwa melanggar perubahan yang APIs kami anggap stabil terbatas pada rilis utama.

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
<a name="cdk-toolkit-versioning"></a>

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 Perpustakaan Konstruksi. AWS Ini juga kompatibel dengan versi AWS CDK Toolkit yang lebih baru. Setiap versi Perpustakaan AWS Konstruksi mempertahankan kompatibilitas ini hingga tanggal *Akhir Masa* Pakai pustaka. 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](https://github.com/aws/aws-cdk-cli/blob/main/COMPATIBILITY.md) di *aws-cdk-cli GitHub repositori*.

## AWS Membangun versi Perpustakaan
<a name="aws-construct-lib-stability"></a>

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/resource-type-schemas.html) 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` dan`Stack`, 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 ke`aws-cdk-lib`.

## AWS Klarifikasi versi semantik Construct Library
<a name="aws-construct-lib-semver"></a>

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*. Perpustakaan AWS Konstruksi 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 Anda dapat dengan aman mengandalkan antarmuka seperti `s3.IBucket` menyediakan 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 seperti`s3.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 — external` anotasi.* 
+  **Program yang benar secara semantik saja** 

  Kami memastikan bahwa program yang benar terus bekerja dengan versi yang lebih baru. Program yang secara formal salah tetapi kebetulan berfungsi karena detail implementasi tidak tercakup. Misalnya, jika program Anda bergantung pada [TypeScriptaturan pengetikan struktural](https://www.typescriptlang.org/docs/handbook/type-compatibility.html) untuk meneruskan jenis objek yang tidak terduga, atau berhasil mensintesis tetapi menghasilkan CloudFormation templat yang gagal diterapkan, kami dapat memperkenalkan perubahan yang menyebabkan program ini gagal tanpa menganggapnya melanggar perubahan.
+  **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 `*[]string ` ke `` bukan konversi otomatis. Oleh karena itu, pelebaran jenis ini membutuhkan kode konsumen untuk berubah. Lihat [Bekerja dengan potongan apa pun](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-go.html#go-cdk-idioms) untuk strategi.

## Stabilitas pengikatan bahasa
<a name="aws-construct-lib-versioning-binding"></a>

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\$1/.NET  |  Stabil  | 
|  Go  |  Stabil  | 

# Versi Node.js yang didukung untuk AWS CDK
<a name="node-versions"></a>

 AWS Cloud Development Kit (AWS CDK) bergantung pada Node.js untuk fungsinya. Ini termasuk komponen CDK inti seperti AWS CDK CLI (`aws-cdk-cli`), AWS Construct Library (`aws-cdk-lib`), serta alat yang lebih luas seperti,, dan. JSII Projen CDK8s Halaman ini mendokumentasikan versi runtime Node.js yang kompatibel dengan AWS CDK, membantu Anda mempertahankan lingkungan pengembangan yang didukung.

 AWS CDK bertujuan untuk menjaga kompatibilitas dengan versi Node.js Long Term Support (LTS) yang didukung secara aktif. Saat versi Node.js mencapai versi mereka end-of-life, AWS CDK juga menghentikan dukungan untuk versi ini untuk memastikan keamanan, kinerja, dan akses ke fitur-fitur terbaru.

Menyimpan komponen dan alat CDK Anda pada versi Node.js yang didukung memastikan bahwa Anda menerima pembaruan keamanan, perbaikan bug, dan akses ke fitur dan peningkatan CDK terbaru.

## Garis waktu dukungan versi Node.js
<a name="node-version-timeline"></a>

 AWS CDK mendukung versi Node.js di luar tanggal resmi End-of-Life (EOL) mereka untuk memberi Anda waktu untuk meningkatkan lingkungan Anda. Dukungan ini diperpanjang selama 6 bulan (misalnya, ketika versi Node.js mencapai EOL pada bulan April, dukungan berlanjut hingga Oktober). Tabel timeline dukungan versi di bawah ini mendokumentasikan tanggal akhir dukungan CDK tertentu saat ditentukan. Pendekatan ini memberi Anda jendela yang ditentukan untuk merencanakan dan mengimplementasikan peningkatan versi sambil mempertahankan akses ke fungsionalitas dan pembaruan CDK.


| Versi Node.js | Tanggal EOL simpul | Status dukungan CDK | 
| --- | --- | --- | 
|  22.x  |  2027-04-30  |  Support diharapkan hingga Oktober 2027.  | 
|  20.x  |  2026-04-30  |  Support diharapkan hingga Oktober 2026.  | 
|  18.x  |  2025-05-30  |  Support berakhir 2025-11-30.  | 
|  16.x  |  2023-09-11  |  Support berakhir 2025-05-30.  | 
|  14,x  |  2023-04-30  |  Support berakhir 2025-05-30.  | 

# AWS Sumber daya video CDK
<a name="videos"></a>

Nikmati video yang disajikan oleh anggota tim AWS CDK ini.

**catatan**  
Karena AWS CDK selalu berkembang, beberapa kode yang disajikan dalam video ini mungkin tidak bekerja dengan cara yang sama seperti ketika video direkam. Hal ini terutama berlaku untuk modul yang sedang dalam pengembangan aktif pada saat itu. Mungkin juga kami telah menambahkan cara yang lebih baik untuk mencapai hasil yang sama. Lihat Panduan Pengembang ini dan [Referensi API AWS CDK](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html) untuk up-to-date informasi.

## Infrastruktur *adalah* Kode dengan AWS CDK
<a name="videos-infrastructure-is-code"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/ZWCvNFUN-sU?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/ZWCvNFUN-sU?rel=0)


## Selami AWS Cloud Development Kit (AWS CDK)
<a name="videos-deep-dive"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9As_ZIjUGmY?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9As_ZIjUGmY?rel=0)


## Berkontribusi pada Perpustakaan AWS Konstruksi
<a name="videos-contributing"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/LsYlf7ggyrY?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/LsYlf7ggyrY?rel=0)


## Penerapan lebih cepat dengan CDK Pipelines
<a name="videos-pipelines"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/1ps0Wh19MHQ?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/1ps0Wh19MHQ?rel=0)


## Bagaimana berkontribusi pada AWS CDK menggunakan GitPod
<a name="videos-gitpod"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/u6XcIgs-Nok?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/u6XcIgs-Nok?rel=0)
