Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS CDKtutorial untukAWS Cloud9
Tutorial ini menunjukkan kepada Anda bagaimana bekerja denganAWS Cloud Development Kit (AWS CDK)dalam sebuahAWS Cloud9lingkungan pengembangan. AWS CDK adalah seperangkat alat perangkat lunak dan pustaka yang dapat digunakan developer untuk memodelkan komponen infrastruktur AWS sebagai kode.
AWS CDK menyertakan Pustaka Konstruksi AWS yang dapat Anda gunakan untuk menyelesaikan banyak tugas dengan cepat di 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.
Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya untuk AndaAWSakun. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2, Amazon SNS, dan Amazon SQS. Untuk informasi selengkapnya, lihat Harga Amazon EC2
Topik
Prasyarat
Sebelum Anda menggunakan sampel ini, pastikan bahwa pengaturan Anda memenuhi persyaratan berikut:
-
Anda harus memilikiAWS Cloud9Lingkungan pengembangan EC2. Contoh ini mengasumsikan bahwa Anda sudah memiliki lingkungan EC2 yang terhubung ke instans Amazon EC2 yang menjalankan Amazon Linux atauUbuntuServer. 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 Membuat lingkungan di AWS Cloud9.
-
Anda memilikiAWS Cloud9IDE untuk lingkungan yang ada sudah terbuka. Saat Anda membuka lingkungan, AWS Cloud9 membuka IDE untuk lingkungan itu di peramban web Anda. Untuk informasi selengkapnya, lihat Membuka lingkungan di AWS Cloud9.
Langkah 1: Pasang alat yang diperlukan
Pada langkah ini, Anda menginstal semua alat di lingkungan Anda bahwaAWS CDKperlu menjalankan sampel yang ditulis dalamTypeScriptbahasa pemrograman.
-
Node Version Manager, atau
nvm
, yang Anda gunakan untuk memasang Node.js nanti. -
Node.js, yang diperlukan oleh sampel dan berisi Node Package Manager, atau
npm
, yang Anda gunakan untuk menginstalTypeScriptdanAWS CDKnanti. -
TypeScript, yang dibutuhkan oleh sampel ini. (AWS CDK juga menyediakan dukungan untuk beberapa bahasa pemrograman lainnya.)
Langkah 1.1: Pasang Node Version Manager (nvm)
-
Dalam sesi terminal di AWS Cloud9 IDE, pastikan pembaruan keamanan terbaru dan perbaikan bug telah terpasang. Untuk melakukan ini, jalankan perintah
yum update
(untuk Amazon Linux) atauapt 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
-
Konfirmasi apakah
nvm
sudah terpasang. Untuk melakukan ini, jalankan perintahnvm
dengan opsi--version
.nvm --version
Jika berhasil, output berisi nomor versi
nvm
, dan Anda dapat langsung melanjutkan ke Langkah 1.2: Pasang Node.js. -
Unduh dan pasang
nvm
. Untuk melakukan ini, jalankan skrip pemasangan. Dalam contoh ini, v0.33.0 terpasang, tetapi Anda dapat memeriksa versi terbarunvm
di sini. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
-
Mulai menggunakan
nvm
. Anda dapat menutup sesi terminal dan kemudian memulai kembali, atau cari file~/.bashrc
yang berisi perintah untuk memuatnvm
... ~/.bashrc
Langkah 1.2: Pasang Node.js
-
Konfirmasikan apakah Anda sudah menginstal Node.js, dan jika Anda melakukannya, konfirmasikan bahwa versi yang diinstal adalah 16.17.0 atau lebih besar. 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 versi v16.17.0 lewati keLangkah 1.3: InstalTypeScript.
-
Instal Node.js 16 dengan menjalankan
nvm
perintah denganinstall
tindakan.catatan
Anda juga dapat menjalankan
nvm install node
untuk memasang versi dukungan jangka panjang (LTS) dari Node.js. Dukungan AWS Cloud9 melacak versi LTS dari Node.js.nvm install v16
-
Mulai gunakan Node.js 16. Untuk melakukannya, jalankan perintah
nvm
dengan tindakanalias
, 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 tindakanuse
alih-alih tindakanalias
(misalnya,nvm use 16.17.0
). Namun, tindakanuse
menyebabkan versi Node.js tersebut hanya berjalan saat sesi terminal saat ini sedang berjalan. -
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: InstalTypeScript
-
Konfirmasikan apakah Anda sudah memilikinyaTypeScriptdipasang. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan baris perintahTypeScriptcompiler dengan
--version
pilihan.tsc --version
Jika Anda memilikiTypeScriptdiinstal, output berisiTypeScriptnomor versi. JikaTypeScriptdipasang, lewati ke depanLangkah 1.4: Pasang AWS CDK.
-
Instal TypeScript. Untuk melakukan ini, jalankan
npm
perintah denganinstall
tindakan,-g
pilihan, dan namaTypeScriptpaket. Penginstalan iniTypeScriptsebagai paket global di lingkungan.npm install -g typescript
-
Konfirmasikan bahwaTypeScriptdipasang. Untuk melakukan ini, jalankan baris perintahTypeScriptcompiler dengan
--version
pilihan.tsc --version
JikaTypeScriptdiinstal, output berisiTypeScriptnomor versi.
Langkah 1.4: Pasang AWS CDK
-
Konfirmasikan apakah Anda sudah memasang AWS CDK. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, jalankan perintah
cdk
dengan opsi--version
.cdk --version
Jika AWS CDK telah terpasang, output berisi versi AWS CDK dan nomor build. Lewati ke Langkah 2: Menambahkan kode.
-
Pasang AWS CDK dengan menjalankan perintah
npm
bersama dengan tindakaninstall
, nama paket AWS CDK yang akan dipasang, dan opsi-g
untuk memasang paket secara global di lingkungan.npm install -g aws-cdk
-
Konfirmasikan bahwa AWS CDK terpasang dan direferensikan dengan benar. Untuk melakukan ini, jalankan perintah
cdk
dengan opsi--version
.cdk --version
Jika berhasil, versi AWS CDK dan nomor build akan ditampilkan.
Langkah 2: Menambahkan kode
Pada langkah ini, Anda membuat sampelTypeScriptproyek yang berisi semua kode sumber yang Anda butuhkan untukAWS CDKuntuk secara terprogram menyebarkanAWS CloudFormationtumpukan. Tumpukan ini membuat topik Amazon SNS dan antrean Amazon SQS di akun AWS Anda, lalu berlangganan antrean ke topik tersebut.
-
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.
-
Mengatur direktori sebagaiTypeScriptproyek bahasa untukAWS CDK. Untuk melakukan ini, jalankan perintah
cdk
dengan tindakaninit
, templatsample-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 filehello-cdk-stack.ts
. File ini berisi kode untuk tumpukan AWS CDK Anda. Kode ini dijelaskan pada langkah berikutnya dalam prosedur ini. -
Subdirektori
bin
, yang menyertakan filehello-cdk.ts
. File ini berisi titik masuk untuk aplikasi AWS CDK 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 dibutuhkannpm
saat membuat kode. -
File
cdk.json
, yang berisi informasi untuk membuat menjalankan perintahcdk
lebih mudah. -
File
package-lock.json
, yang berisi informasi yang dapat digunakannpm
untuk mengurangi kemungkinan kesalahan pembangunan dan pelaksanaan. -
File
package.json
, yang berisi informasi untuk membuat menjalankan perintahnpm
lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit. -
File
README.md
, yang mencantumkan perintah yang berguna yang dapat Anda jalankan dengannpm
dan AWS CDK. -
File
tsconfig.json
, yang berisi informasi untuk membuat menjalankan perintahtsc
lebih mudah dan dengan kemungkinan kesalahan pembangunan dan pelaksanaan yang lebih sedikit.
-
-
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); } }
-
Kelas
Stack
,App
,StackProps
,Queue
, danTopic
masing-masing mewakili tumpukan AWS CloudFormation dan propertinya, program yang dapat dieksekusi, antrean Amazon SQS, dan topik Amazon SNS. -
Kelas
HelloCdkStack
mewakili tumpukan AWS CloudFormation untuk aplikasi ini. Tumpukan ini berisi antrean Amazon SQS baru dan topik Amazon SNS untuk aplikasi ini.
-
-
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 filelib/hello-cdk-stack.ts
. -
Gunakan
npm
untuk menjalankanTypeScriptcompiler untuk memeriksa kesalahan coding, dan kemudian mengaktifkanAWS CDKuntuk mengeksekusi proyekbin/hello-cdk.js
berkas. Untuk melakukannya, dari direktori root proyek, jalankan perintahnpm
dengan tindakanrun
, dengan menetapkan nilai perintahbuild
dalam filepackage.json
, sebagai berikut.npm run build
Perintah sebelumnya menjalankanTypeScriptcompiler, yang menambahkan pendukung
bin/hello-cdk.d.ts
danlib/hello-cdk-stack.d.ts
file. Kompiler juga mentranspilasikan filehello-cdk.ts
danhello-cdk-stack.ts
menjadi filehello-cdk.js
danhello-cdk-stack.js
.
Langkah 3: Jalankan kode
Pada langkah ini, Anda menginstruksikan AWS CDK untuk membuat templat tumpukan AWS CloudFormation berdasarkan kode di file bin/hello-cdk.js
. Anda kemudian menginstruksikan AWS CDK untuk men-deploy tumpukan, yang membuat topik Amazon SNS dan antrean Amazon SQS, lalu berlangganan antrean ke topik tersebut. Anda kemudian mengonfirmasi bahwa topik dan antrean berhasil ter-deploy dengan mengirimkan pesan dari topik ke antrean.
-
Mintalah AWS CDK membuat templat tumpukan AWS CloudFormation. Untuk melakukan ini, dengan sesi terminal masih terbuka di IDE, dari direktori root proyek, jalankan perintah
cdk
dengan tindakansynth
dan nama tumpukan.cdk synth HelloCdkStack
Jika berhasil, output menampilkan bagian AWS CloudFormation templat tumpukan
Resources
. -
Pertama kali Anda men-deploy aplikasi AWS CDK ke lingkungan untuk akun AWS tertentu dan kombinasi Wilayah AWS, Anda harus memasang tumpukan bootstrap. Tumpukan ini mencakup berbagai sumber daya yang dibutuhkan AWS CDK untuk menyelesaikan berbagai operasinya. Misalnya, tumpukan ini menyertakan bucket Amazon S3 yang digunakan AWS CDK untuk menyimpan templat dan aset selama proses deployment. Untuk memasang tumpukan bootstrap, jalankan perintah
cdk
dengan tindakanbootstrap
.cdk bootstrap
catatan
Jika Anda menjalankan
cdk bootstrap
tanpa menentukan opsi apa pun, akun AWS default dan Wilayah AWS akan digunakan. Anda juga dapat mem-bootstrap lingkungan tertentu dengan menentukan profil dan kombinasi akun/Wilayah. Misalnya:cdk bootstrap --profile test 123456789012/us-east-1
-
Minta AWS CDK menjalankan templat tumpukan AWS CloudFormation untuk men-deploy tumpukan. Untuk melakukan ini, dari direktori root proyek, jalankan perintah
cdk
dengan tindakandeploy
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 kredensial AWS tidak dapat diperoleh dari lokasi standar atau tidak ada wilayah yang dikonfigurasi, pastikan kredensial AWS Anda diatur dengan benar di IDE, lalu jalankan perintah
cdk deploy
lagi. Untuk informasi selengkapnya, lihat MeneleponLayanan AWS dari lingkungan diAWS Cloud9. -
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 sepertiAWS Command Line Interface(AWS CLI) atauAWS CloudShell. Untuk informasi lebih lanjut tentang alat ini, lihat AWS Command Line Interfacedan AWS CloudShell tutorial untuk AWS Cloud9.
Misalnya, untuk mengirim pesan ke topik, dengan sesi terminal masih terbuka di IDE, gunakan AWS CLI untuk menjalankan perintah
publish
Amazon SNS, menyediakan subjek dan isi pesan, Wilayah AWS untuk topik, dan topik Amazon Resource Name (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
Pada perintah sebelumnya, ganti
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
dengan ARN yang ditugaskan AWS CloudFormation ke topik. Untuk mendapatkan ID, Anda dapat menjalankan perintahlist-topics
Amazon SNS.aws sns list-topics --output table --query 'Topics[*].TopicArn'
Jika berhasil, output dari perintah
publish
menampilkan nilaiMessageId
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
Dalam perintah sebelumnya, ganti
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
dengan ARN yang ditugaskan AWS CloudFormation ke antrean. Untuk mendapatkan URL, Anda dapat menjalankan perintahlist-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: Bersihkan
Untuk mencegah tagihan berkelanjutan ke akun AWS Anda setelah selesai menggunakan sampel ini, Anda harus menghapus tumpukan AWS CloudFormation. Ini akan menghapus topik Amazon SNS dan antrean Amazon SQS. Anda juga harus menghapus lingkungan.
Langkah 4.1: Hapus tumpukan
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
Untuk menghapus lingkungan, lihat Menghapus lingkungan di AWS Cloud9.