AWS CDK tutorial untuk AWS Cloud9 - AWS Cloud9

AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

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

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.

Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti AmazonEC2, AmazonSNS, dan AmazonSQS. Untuk informasi selengkapnya, lihat EC2Harga Amazon, SNS Harga Amazon, dan SQSHarga Amazon.

Prasyarat

Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:

  • Anda harus memiliki lingkungan AWS Cloud9 EC2 pengembangan yang ada. Contoh ini mengasumsikan bahwa Anda sudah memiliki EC2 lingkungan yang terhubung ke EC2 instans Amazon yang menjalankan Amazon Linux atau Ubuntu Peladen. 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.

  • Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka. Ketika Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser 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 yang AWS CDK perlu menjalankan sampel yang ditulis dalam bahasa TypeScript 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 npm, atau, yang Anda gunakan untuk menginstal TypeScript dan AWS CDK nanti.

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

  4. Itu 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 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
  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 tinggi. Sampel ini telah diuji dengan Node.js 16.17.0. Untuk memeriksa, dengan sesi terminal masih terbuka diIDE, jalankan nodeperintah dengan --versionopsi.

    node --version

    Jika Anda telah memasang Node.js, output berisi nomor versi. Jika nomor versinya adalah v16.17.0, lompat ke depan. Langkah 1.3: Instal TypeScript

  2. Instal Node.js 16 dengan menjalankan nvmperintah dengan installtindakan.

    catatan

    Anda juga dapat menjalankan nvm install nodeuntuk menginstal versi support (LTS) jangka panjang dari Node.js. AWS Cloud9 dukungan melacak LTS versi 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 --versionperintah lagi. Jika versi yang benar diinstal, output berisi versi v16.

Langkah 1.3: Instal TypeScript

  1. Konfirmasikan apakah Anda sudah TypeScript menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka diIDE, jalankan TypeScript kompiler baris perintah dengan --versionopsi.

    tsc --version

    Jika Anda telah TypeScript menginstal, output berisi nomor TypeScript versi. Jika TypeScript diinstal, lewati ke depanLangkah 1.4: Instal AWS CDK.

  2. Instal TypeScript. Untuk melakukan ini, jalankan npmperintah dengan installtindakan, -gopsi, dan nama TypeScript paket. Ini diinstal TypeScript sebagai paket global di lingkungan.

    npm install -g typescript
  3. Konfirmasikan bahwa TypeScript sudah diinstal. Untuk melakukan ini, jalankan TypeScript compiler baris perintah dengan --versionopsi.

    tsc --version

    Jika TypeScript diinstal, output berisi nomor TypeScript versi.

Langkah 1.4: Instal AWS CDK

  1. Konfirmasikan apakah Anda sudah AWS CDK menginstal. Untuk melakukan ini, dengan sesi terminal masih terbuka diIDE, jalankan cdkperintah dengan --versionopsi.

    cdk --version

    Jika AWS CDK diinstal, output berisi AWS CDK versi dan nomor build. Lewati ke Langkah 2: Menambahkan kode.

  2. Instal AWS CDK dengan menjalankan npmperintah 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
  3. 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

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 SNS topik Amazon dan SQS antrian Amazon di AWS akun Anda dan kemudian berlangganan antrian ke topik tersebut.

  1. Dengan sesi terminal masih terbuka diIDE, buat direktori untuk menyimpan kode sumber proyek, misalnya ~/environment/hello-cdk direktori 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. 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.mdFile, yang mencantumkan perintah berguna yang dapat Anda jalankan npmdan 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.

  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); } }
    • TopicKelasStack,App,StackProps,Queue, dan mewakili AWS CloudFormation tumpukan dan propertinya, program yang dapat dieksekusi, SQS antrian Amazon, dan SNS topik Amazon, masing-masing.

    • HelloCdkStackKelas mewakili AWS CloudFormation tumpukan untuk aplikasi ini. Tumpukan ini berisi SQS antrian Amazon baru dan SNS topik Amazon 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 npmuntuk menjalankan TypeScript compiler untuk memeriksa kesalahan coding, dan kemudian mengaktifkan 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

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

  1. Minta template AWS CDK buat AWS CloudFormation tumpukan. Untuk melakukan ini, dengan sesi terminal masih terbuka diIDE, dari direktori root proyek, jalankan cdkperintah dengan synthtindakan dan nama tumpukan.

    cdk synth HelloCdkStack

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

  2. 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 kombinasi akun/Wilayah. Sebagai contoh:

    cdk bootstrap --profile test 123456789012/us-east-1
  3. AWS CDK Jalankan template AWS 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 mendefinisikan lingkungan dan AWS kredensialnya tidak dapat diperoleh dari lokasi standar atau tidak ada wilayah yang dikonfigurasi, pastikan AWS kredenal Anda disetel dengan benar diIDE, lalu jalankan perintah lagi. cdk deploy Untuk informasi selengkapnya, lihat Menelepon Layanan AWS dari lingkungan di AWS Cloud9.

  4. Untuk mengonfirmasi bahwa SNS topik Amazon dan SQS antrian Amazon berhasil diterapkan, kirim pesan ke topik, lalu periksa antrian 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.

    Misalnya, untuk mengirim pesan ke topik, dengan sesi terminal masih terbuka diIDE, gunakan SNS publishperintah AWS CLI untuk menjalankan Amazon, 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 AWS CloudFormation menetapkan ke topik. Untuk mendapatkan ID, Anda dapat menjalankan SNS list-topicsperintah Amazon.

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

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

    Untuk memeriksa antrian untuk pesan yang diterima, jalankan SQS receive-messageperintah Amazon, berikan antrean. URL

    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 AWS CloudFormation menetapkan ke antrian. Untuk mendapatkanURL, Anda dapat menjalankan SQS list-queuesperintah Amazon.

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

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

Langkah 4: Membersihkan

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

Langkah 4.1: Hapus tumpukan

Dengan sesi terminal masih terbuka diIDE, dari direktori root proyek, jalankan cdkperintah dengan destroytindakan 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.