

 AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. [Pelajari selengkapnya](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS CDK tutorial untuk AWS Cloud9
<a name="sample-cdk"></a>

Tutorial ini menunjukkan cara bekerja dengan lingkungan AWS Cloud9 pengembangan. AWS Cloud Development Kit (AWS CDK) AWS CDK Ini adalah seperangkat perangkat perangkat lunak dan perpustakaan yang dapat digunakan pengembang untuk memodelkan komponen AWS infrastruktur sebagai kode.

 AWS CDK Termasuk AWS Construct Library yang dapat Anda gunakan untuk menyelesaikan banyak tugas dengan cepat. AWS Misalnya, Anda dapat menggunakan konstruksi `Fleet` untuk men-deploy kode secara penuh dan aman ke armada host. Anda dapat membuat konstruksi Anda sendiri untuk memodelkan berbagai elemen arsitektur Anda, membaginya dengan orang lain, atau mempublikasikannya ke komunitas. Untuk informasi selengkapnya, lihat [Panduan Developer AWS Cloud Development Kit](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2, Amazon SNS, dan Amazon SQS. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/), [Harga Amazon SNS](https://aws.amazon.com/sns/pricing/), dan [Harga Amazon SQS](https://aws.amazon.com/sqs/pricing/).

**Topics**
+ [Prasyarat](#sample-cdk-prereqs)
+ [Langkah 1: Pasang alat yang diperlukan](#sample-cdk-install)
+ [Langkah 2: Menambahkan kode](#sample-cdk-code)
+ [Langkah 3: Jalankan kode](#sample-cdk-run)
+ [Langkah 4: Membersihkan](#sample-cdk-clean-up)

## Prasyarat
<a name="sample-cdk-prereqs"></a>

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
+ **Anda harus memiliki lingkungan pengembangan AWS Cloud9 EC2 yang ada.** Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atau Server. Ubuntu Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat [Menciptakan lingkungan di AWS Cloud9](create-environment.md).
+ **Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka.** Saat Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat [Membuka lingkungan di AWS Cloud9](open-environment.md).

## Langkah 1: Pasang alat yang diperlukan
<a name="sample-cdk-install"></a>

Pada langkah ini, Anda menginstal semua alat di lingkungan Anda yang AWS CDK perlu menjalankan sampel yang ditulis dalam bahasa TypeScript pemrograman.

1.  [Node Version Manager](#sample-cdk-install-nvm), atau ** `nvm` ** , yang Anda gunakan untuk memasang Node.js nanti.

1.  [Node.js](#sample-cdk-install-nodejs), yang diperlukan oleh sampel dan berisi Node Package Manager **`npm`**, atau, yang Anda gunakan untuk menginstal TypeScript dan AWS CDK nanti.

1.  [TypeScript](#sample-cdk-install-typescript), yang dibutuhkan oleh sampel ini. (Ini AWS CDK juga menyediakan dukungan untuk beberapa bahasa pemrograman lainnya.)

1. [AWS CDK](#sample-cdk-install-cdk).

### Langkah 1.1: Pasang Node Version Manager (nvm)
<a name="sample-cdk-install-nvm"></a>

1. Dalam sesi terminal di AWS Cloud9 IDE, pastikan pembaruan keamanan terbaru dan perbaikan bug diinstal. Untuk melakukan ini, jalankan perintah ** `yum update` ** (untuk Amazon Linux) atau ** `apt update` ** (untuk Server Ubuntu). (Untuk memulai sesi terminal baru, pada bilah menu, pilih **Jendela**, **Terminal Baru**.)

   Untuk Amazon Linux:

   ```
   sudo yum -y update
   ```

   Untuk Ubuntu Server:

   ```
   sudo apt update
   ```

1. Konfirmasi apakah ** `nvm` ** sudah terpasang. Untuk melakukan ini, jalankan perintah ** `nvm` ** dengan opsi ** `--version` **.

   ```
   nvm --version
   ```

   Jika berhasil, output berisi nomor versi ** `nvm` **, dan Anda dapat langsung melanjutkan ke [Langkah 1.2: Pasang Node.js](#sample-cdk-install-nodejs).

1. Unduh dan pasang ** `nvm` **. Untuk melakukan ini, jalankan skrip pemasangan. Dalam contoh ini, v0.33.0 terpasang, tetapi Anda dapat memeriksa versi terbaru ** `nvm` ** [di sini](https://github.com/nvm-sh/nvm#installing-and-updating).

   ```
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
   ```

1. Mulai menggunakan ** `nvm` **. Anda dapat menutup sesi terminal dan kemudian memulai kembali, atau cari file `~/.bashrc` yang berisi perintah untuk memuat ** `nvm` **..

   ```
   . ~/.bashrc
   ```

### Langkah 1.2: Pasang Node.js
<a name="sample-cdk-install-nodejs"></a>

1. Konfirmasikan apakah Anda sudah menginstal Node.js, dan jika Anda melakukannya, konfirmasikan bahwa versi yang diinstal adalah 16.17.0 atau lebih tinggi. **Sampel ini telah diuji dengan Node.js 16.17.0.** Untuk memeriksa, dengan sesi terminal masih terbuka di IDE, jalankan perintah ** `node` ** dengan opsi ** `--version` **.

   ```
   node --version
   ```

   Jika Anda telah memasang Node.js, output berisi nomor versi. Jika nomor versinya v16.17.0 lompat ke depan. [Langkah 1.3: Instal TypeScript](#sample-cdk-install-typescript)

1. Instal Node.js 16 dengan menjalankan **`nvm`**perintah dengan **`install`**tindakan.
**catatan**  
Anda juga dapat menjalankan **`nvm install node`**untuk menginstal versi dukungan jangka panjang (LTS) dari Node.js. AWS Cloud9 dukungan melacak versi LTS dari Node.js. 

   ```
   nvm install v16
   ```

1. Mulai gunakan Node.js 16. Untuk melakukannya, jalankan perintah ** `nvm` ** dengan tindakan ** `alias` **, nomor versi ke alias, dan versi yang digunakan untuk alias itu, sebagai berikut.

   ```
   nvm alias default 16
   ```
**catatan**  
Perintah sebelumnya menetapkan Node.js 16 sebagai versi default Node.js. Atau, Anda dapat menjalankan perintah ** `nvm` ** bersama dengan tindakan ** `use` ** alih-alih tindakan ** `alias` ** (misalnya, ** `nvm use 16.17.0` **). Namun, tindakan ** `use` ** menyebabkan versi Node.js tersebut hanya berjalan saat sesi terminal saat ini sedang berjalan.

1. Untuk mengonfirmasi bahwa Anda menggunakan Node.js 16 jalankan **`node --version`**perintah lagi. Jika versi yang benar diinstal, output berisi versi v16.

### Langkah 1.3: Instal TypeScript
<a name="sample-cdk-install-typescript"></a>

1. Konfirmasikan apakah Anda sudah TypeScript menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan TypeScript kompiler baris perintah dengan **`--version`**opsi.

   ```
   tsc --version
   ```

   Jika Anda telah TypeScript menginstal, output berisi nomor TypeScript versi. Jika TypeScript diinstal, lewati ke depan[Langkah 1.4: Instal AWS CDK](#sample-cdk-install-cdk).

1. Instal TypeScript. Untuk melakukan ini, jalankan **`npm`**perintah dengan **`install`**tindakan, **`-g`**opsi, dan nama TypeScript paket. Ini diinstal TypeScript sebagai paket global di lingkungan.

   ```
   npm install -g typescript
   ```

1. Konfirmasikan bahwa TypeScript sudah diinstal. Untuk melakukan ini, jalankan TypeScript compiler baris perintah dengan **`--version`**opsi.

   ```
   tsc --version
   ```

   Jika TypeScript diinstal, output berisi nomor TypeScript versi.

### Langkah 1.4: Instal AWS CDK
<a name="sample-cdk-install-cdk"></a>

1. Konfirmasikan apakah Anda sudah AWS CDK menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan perintah ** `cdk` ** dengan opsi ** `--version` **.

   ```
   cdk --version
   ```

   Jika AWS CDK diinstal, output berisi AWS CDK versi dan nomor build. Lewati ke [Langkah 2: Menambahkan kode](#sample-cdk-code).

1. Instal AWS CDK dengan menjalankan **`npm`**perintah bersama dengan `install` tindakan, nama AWS CDK paket yang akan diinstal, dan `-g` opsi untuk menginstal paket secara global di lingkungan.

   ```
   npm install -g aws-cdk
   ```

1. Konfirmasikan bahwa AWS CDK sudah diinstal dan direferensikan dengan benar. Untuk melakukan ini, jalankan perintah ** `cdk` ** dengan opsi ** `--version` **.

   ```
   cdk --version
   ```

   Jika berhasil, AWS CDK versi dan nomor build akan ditampilkan.

## Langkah 2: Menambahkan kode
<a name="sample-cdk-code"></a>

Pada langkah ini, Anda membuat TypeScript proyek sampel yang berisi semua kode sumber yang Anda butuhkan untuk menyebarkan AWS CDK tumpukan secara terprogram. AWS CloudFormation Tumpukan ini membuat topik Amazon SNS dan antrean Amazon SQS di akun AWS Anda dan kemudian berlangganan antrian ke topik tersebut.

1. Dengan sesi terminal masih terbuka di IDE, buat direktori untuk menyimpan kode sumber proyek, misalnya direktori `~/environment/hello-cdk` di lingkungan Anda. Kemudian beralih ke direktori itu.

   ```
   rm -rf ~/environment/hello-cdk # Remove this directory if it already exists.
   mkdir ~/environment/hello-cdk  # Create the directory.
   cd ~/environment/hello-cdk     # Switch to the directory.
   ```

1. Siapkan direktori sebagai proyek TypeScript bahasa untuk file AWS CDK. Untuk melakukan ini, jalankan perintah ** `cdk` ** dengan tindakan ** `init` **, templat ** `sample-app` **, dan opsi ** `--language` ** bersama dengan nama bahasa pemrograman.

   ```
   cdk init sample-app --language typescript
   ```

   Ini membuat file dan subdirektori berikut di direktori.
   + Subdirektori `.git` tersembunyi dan file `.gitignore` tersembunyi, yang membuat proyek kompatibel dengan alat pengendali sumber seperti Git.
   + Subdirektori `lib`, yang menyertakan file `hello-cdk-stack.ts`. File ini berisi kode untuk AWS CDK tumpukan Anda. Kode ini dijelaskan pada langkah berikutnya dalam prosedur ini.
   + Subdirektori `bin`, yang menyertakan file `hello-cdk.ts`. File ini berisi titik masuk untuk AWS CDK aplikasi Anda.
   + Subdirektori `node_modules`, yang berisi paket kode pendukung yang dapat digunakan aplikasi dan tumpukan sesuai kebutuhan.
   + File `.npmignore` tersembunyi, yang mencantumkan jenis subdirektori dan file yang tidak dibutuhkan ** `npm` ** saat membuat kode.
   + File `cdk.json`, yang berisi informasi untuk membuat menjalankan perintah ** `cdk` ** lebih mudah.
   + File `package-lock.json`, yang berisi informasi yang dapat digunakan ** `npm` ** untuk mengurangi kemungkinan kesalahan pembangunan dan pelaksanaan.
   + File `package.json`, yang berisi informasi untuk membuat menjalankan perintah ** `npm` ** lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit.
   + `README.md`File, yang mencantumkan perintah berguna yang dapat Anda jalankan **`npm`**dan file AWS CDK.
   + File `tsconfig.json`, yang berisi informasi untuk membuat menjalankan perintah ** `tsc` ** lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit.

1. Di jendela **Lingkungan**, buka file `lib/hello-cdk-stack.ts`, dan telusuri kode berikut di file itu.

   ```
   import sns = require('@aws-cdk/aws-sns');
   import sqs = require('@aws-cdk/aws-sqs');
   import cdk = require('@aws-cdk/cdk');
   
   export class HelloCdkStack extends cdk.Stack {
     constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
       super(parent, name, props);
   
       const queue = new sqs.Queue(this, 'HelloCdkQueue', {
         visibilityTimeoutSec: 300
       });
   
       const topic = new sns.Topic(this, 'HelloCdkTopic');
   
       topic.subscribeQueue(queue);
     }
   }
   ```
   + `Topic`Kelas`Stack`,`App`,`StackProps`,`Queue`, dan mewakili CloudFormation tumpukan dan propertinya, program yang dapat dieksekusi, antrian Amazon SQS, dan topik Amazon SNS, masing-masing.
   + `HelloCdkStack`Kelas mewakili CloudFormation tumpukan untuk aplikasi ini. Tumpukan ini berisi antrean Amazon SQS baru dan topik Amazon SNS untuk aplikasi ini.

1. Di jendela **Lingkungan**, buka file `bin/hello-cdk.ts`, dan telusuri kode berikut di file itu.

   ```
   #!/usr/bin/env node
   import cdk = require('@aws-cdk/cdk');
   import { HelloCdkStack } from '../lib/hello-cdk-stack';
   
   const app = new cdk.App();
   new HelloCdkStack(app, 'HelloCdkStack');
   app.run();
   ```

   Kode ini memuat, membuat instans, dan kemudian menjalankan kelas `HelloCdkStack` dari file `lib/hello-cdk-stack.ts`.

1. Gunakan **`npm`**untuk menjalankan TypeScript kompiler untuk memeriksa kesalahan pengkodean, dan kemudian aktifkan AWS CDK untuk mengeksekusi `bin/hello-cdk.js` file proyek. Untuk melakukannya, dari direktori root proyek, jalankan perintah ** `npm` ** dengan tindakan ** `run` **, dengan menetapkan nilai perintah ** `build` ** dalam file `package.json`, sebagai berikut.

   ```
   npm run build
   ```

   Perintah sebelumnya menjalankan TypeScript kompiler, yang menambahkan dukungan `bin/hello-cdk.d.ts` dan file. `lib/hello-cdk-stack.d.ts` Kompiler juga mentranspilasikan file `hello-cdk.ts` dan `hello-cdk-stack.ts` menjadi file `hello-cdk.js` dan `hello-cdk-stack.js`.

## Langkah 3: Jalankan kode
<a name="sample-cdk-run"></a>

Pada langkah ini, Anda menginstruksikan AWS CDK untuk membuat template CloudFormation tumpukan berdasarkan kode dalam `bin/hello-cdk.js` file. Anda kemudian menginstruksikan AWS CDK untuk menerapkan tumpukan, yang membuat topik Amazon SNS dan antrean Amazon SQS dan kemudian berlangganan antrian ke topik. Anda kemudian mengonfirmasi bahwa topik dan antrean berhasil ter-deploy dengan mengirimkan pesan dari topik ke antrean.

1. Minta template AWS CDK buat CloudFormation tumpukan. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `synth` ** dan nama tumpukan.

   ```
   cdk synth HelloCdkStack
   ```

   Jika berhasil, output menampilkan `Resources` bagian CloudFormation stack template ini.

1. Pertama kali Anda menerapkan AWS CDK aplikasi ke lingkungan untuk AWS akun tertentu dan kombinasi AWS Wilayah, Anda harus menginstal *tumpukan bootstrap*. Tumpukan ini mencakup berbagai sumber daya yang AWS CDK dibutuhkan untuk menyelesaikan berbagai operasinya. Misalnya, tumpukan ini menyertakan bucket Amazon S3 yang AWS CDK digunakan untuk menyimpan templat dan aset selama proses penerapannya. Untuk memasang tumpukan bootstrap, jalankan perintah ** `cdk` ** dengan tindakan ** `bootstrap` **.

   ```
   cdk bootstrap
   ```
**catatan**  
Jika Anda menjalankan `cdk bootstrap` tanpa menentukan opsi apa pun, AWS akun default dan AWS Wilayah digunakan. Anda juga dapat mem-bootstrap lingkungan tertentu dengan menentukan profil dan account/Region kombinasi. Contoh:  

   ```
   cdk bootstrap --profile test 123456789012/us-east-1
   ```

1.  AWS CDK Jalankan template CloudFormation tumpukan untuk menyebarkan tumpukan. Untuk melakukan ini, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `deploy` ** dan nama tumpukan.

   ```
   cdk deploy HelloCdkStack
   ```

   Jika berhasil, output menampilkan bahwa tumpukan `HelloCdkStack` di-deploy tanpa kesalahan.
**catatan**  
Jika output menampilkan pesan bahwa tumpukan tidak menentukan lingkungan dan AWS kredensialnya tidak dapat diperoleh dari lokasi standar atau tidak ada wilayah yang dikonfigurasi, pastikan AWS kredensialnya disetel dengan benar di IDE, lalu jalankan perintahnya lagi. **`cdk deploy`** Untuk informasi selengkapnya, lihat [Menelepon Layanan AWS dari lingkungan di AWS Cloud9](credentials.md).

1. Untuk mengonfirmasi bahwa topik Amazon SNS dan antrean Amazon SQS berhasil di-deploy, kirim pesan ke topik tersebut, lalu periksa antrean untuk pesan yang diterima. Untuk melakukan ini, Anda dapat menggunakan alat seperti AWS Command Line Interface (AWS CLI) atau AWS CloudShell. Untuk informasi lebih lanjut tentang alat ini, lihat [AWS CLI dan tutorial aws-shell untuk AWS Cloud9](sample-aws-cli.md).

   Misalnya, untuk mengirim pesan ke topik, dengan sesi terminal masih terbuka di IDE, gunakan perintah AWS CLI untuk menjalankan **`publish`**perintah Amazon SNS, memasok subjek dan isi pesan, AWS Wilayah untuk topik, dan Nama Sumber Daya Amazon topik (ARN).

   ```
   aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
   ```

   Dalam perintah sebelumnya, ganti `arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K` dengan ARN yang CloudFormation menetapkan topik. Untuk mendapatkan ID, Anda dapat menjalankan perintah ** `list-topics` ** Amazon SNS.

   ```
   aws sns list-topics --output table --query 'Topics[*].TopicArn'
   ```

   Jika berhasil, output dari perintah ** `publish` ** menampilkan nilai `MessageId` untuk pesan yang dipublikasikan.

   Untuk memeriksa antrean pesan yang diterima, jalankan perintah ** `receive-message` ** Amazon SQS, yang menyediakan URL antrean.

   ```
   aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
   ```

   Pada perintah sebelumnya, ganti `https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K` dengan ARN yang CloudFormation menetapkan antrian. Untuk mendapatkan URL, Anda dapat menjalankan perintah ** `list-queues` ** Amazon SQS.

   ```
   aws sqs list-queues --output table --query 'QueueUrls[*]'
   ```

   Jika berhasil, output dari perintah ** `receive-message` ** menampilkan informasi tentang pesan yang diterima.

## Langkah 4: Membersihkan
<a name="sample-cdk-clean-up"></a>

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah selesai menggunakan sampel ini, Anda harus menghapus CloudFormation tumpukan. Ini akan menghapus topik Amazon SNS dan antrean Amazon SQS. Anda juga harus menghapus lingkungan.

### Langkah 4.1: Hapus tumpukan
<a name="step-4-1-delete-the-stack"></a>

Dengan sesi terminal masih terbuka di IDE, dari direktori root proyek, jalankan perintah ** `cdk` ** dengan tindakan ** `destroy` ** dan nama tumpukan.

```
cdk destroy HelloCdkStack
```

Saat diminta untuk menghapus tumpukan, ketik `y`, lalu tekan `Enter`.

Jika berhasil, output menampilkan bahwa tumpukan `HelloCdkStack` dihapus tanpa kesalahan.

### Langkah 4.2: Hapus lingkungan
<a name="step-4-2-delete-the-envtitle"></a>

Untuk menghapus lingkungan, lihat [Menghapus lingkungan di AWS Cloud9](delete-environment.md).