AWS CDKtutorial untukAWS Cloud9 - AWS Cloud9

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, Harga Amazon SNS, dan Harga Amazon SQS.

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.

  1. Node Version Manager, atau nvm , yang Anda gunakan untuk memasang Node.js nanti.

  2. Node.js, yang diperlukan oleh sampel dan berisi Node Package Manager, atau npm , yang Anda gunakan untuk menginstalTypeScriptdanAWS CDKnanti.

  3. TypeScript, yang dibutuhkan oleh sampel ini. (AWS CDK juga menyediakan dukungan untuk beberapa bahasa pemrograman lainnya.)

  4. AWS CDK.

Langkah 1.1: Pasang Node Version Manager (nvm)

  1. 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) 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
  2. 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.

  3. 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.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  4. 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

  1. 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.

  2. Instal Node.js 16 dengan menjalankan nvm perintah dengan install 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
  3. 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.

  4. 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

  1. 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.

  2. Instal TypeScript. Untuk melakukan ini, jalankan npm perintah dengan install tindakan, -g pilihan, dan namaTypeScriptpaket. Penginstalan iniTypeScriptsebagai paket global di lingkungan.

    npm install -g typescript
  3. Konfirmasikan bahwaTypeScriptdipasang. Untuk melakukan ini, jalankan baris perintahTypeScriptcompiler dengan --version pilihan.

    tsc --version

    JikaTypeScriptdiinstal, output berisiTypeScriptnomor versi.

Langkah 1.4: Pasang AWS CDK

  1. 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.

  2. Pasang AWS CDK dengan menjalankan perintah npm bersama dengan tindakan install, nama paket AWS CDK yang akan dipasang, dan opsi -g untuk memasang paket secara global di lingkungan.

    npm install -g aws-cdk
  3. 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.

  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.
  2. Mengatur direktori sebagaiTypeScriptproyek bahasa untukAWS 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 tumpukan AWS CDK Anda. Kode ini dijelaskan pada langkah berikutnya dalam prosedur ini.

    • Subdirektori bin, yang menyertakan file hello-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 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.

    • File README.md, yang mencantumkan perintah yang berguna yang dapat Anda jalankan dengan npm dan 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.

  3. 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, dan Topic 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.

  4. 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.

  5. Gunakan npm untuk menjalankanTypeScriptcompiler untuk memeriksa kesalahan coding, dan kemudian mengaktifkanAWS CDKuntuk mengeksekusi proyekbin/hello-cdk.jsberkas. 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 menjalankanTypeScriptcompiler, yang menambahkan pendukungbin/hello-cdk.d.tsdanlib/hello-cdk-stack.d.tsfile. 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

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.

  1. 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 tindakan synth dan nama tumpukan.

    cdk synth HelloCdkStack

    Jika berhasil, output menampilkan bagian AWS CloudFormation templat tumpukan Resources.

  2. 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 tindakan bootstrap .

    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
  3. Minta AWS CDK menjalankan templat tumpukan AWS CloudFormation untuk men-deploy 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 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.

  4. 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 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

    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 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: 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.