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.
Memulai dengan menggunakan AWS Cloud Development Kit (AWS CDK) by menggunakan AWS CDK Command Line Interface (AWS CDK CLI) untuk mengembangkan aplikasi CDK pertama Anda, bootstrap AWS lingkungan Anda, dan menerapkan aplikasi Anda. AWS
Prasyarat
Sebelum memulai tutorial ini, selesaikan semua langkah pengaturan diMemulai dengan AWS CDK.
Tentang tutorial ini
Dalam tutorial ini, Anda akan membuat dan menyebarkan aplikasi sederhana pada AWS penggunaan. AWS CDK Aplikasi ini terdiri dari AWS Lambda fungsi yang mengembalikan Hello World!
pesan ketika dipanggil. Fungsi ini akan dipanggil melalui URL fungsi Lambda yang berfungsi sebagai titik akhir HTTP (S) khusus untuk fungsi Lambda Anda.
Melalui tutorial ini, Anda akan melakukan hal berikut:
-
Buat proyek Anda - Buat proyek CDK menggunakan CDK CLI
cdk init
perintah. -
Konfigurasikan AWS lingkungan Anda — Konfigurasikan AWS lingkungan tempat Anda akan menerapkan aplikasi Anda.
-
Bootstrap AWS lingkungan Anda - Persiapkan AWS lingkungan Anda untuk penerapan dengan bootstrap menggunakan CDK CLI
cdk bootstrap
perintah. -
Kembangkan aplikasi Anda — Gunakan konstruksi dari AWS Construct Library untuk menentukan fungsi Lambda dan resource URL fungsi Lambda Anda.
-
Mempersiapkan aplikasi Anda untuk penerapan — Gunakan CDK CLI untuk membangun aplikasi Anda dan mensintesis AWS CloudFormation template.
-
Menerapkan aplikasi Anda — Gunakan CDK CLI
cdk deploy
perintah untuk menyebarkan aplikasi Anda dan menyediakan AWS sumber daya Anda. -
Berinteraksi dengan aplikasi Anda — Berinteraksi dengan fungsi Lambda yang Anda gunakan dengan AWS memanggilnya dan menerima respons.
-
Ubah aplikasi Anda — Ubah fungsi Lambda Anda dan terapkan untuk mengimplementasikan perubahan Anda.
-
Hapus aplikasi Anda — Hapus semua sumber daya yang Anda buat dengan menggunakan CDK CLI
cdk destroy
perintah.
Langkah 1: Buat proyek CDK Anda
Pada langkah ini, Anda membuat proyek CDK baru. Proyek CDK harus berada di direktorinya sendiri, dengan dependensi modul lokalnya sendiri.
Untuk membuat proyek CDK
-
Dari direktori awal pilihan Anda, buat dan navigasikan ke direktori bernama
hello-cdk
:$
mkdir hello-cdk && cd hello-cdk
penting
Pastikan untuk memberi nama direktori proyek Anda
hello-cdk
, persis seperti yang ditunjukkan di sini. CDK CLI menggunakan nama direktori ini untuk menamai hal-hal dalam kode CDK Anda. Jika Anda menggunakan nama direktori yang berbeda, Anda akan mengalami masalah selama tutorial ini. -
Dari
hello-cdk
direktori, inisialisasi proyek CDK baru menggunakan CDK CLIcdk init
perintah. Tentukanapp
template dan bahasa pemrograman pilihan Anda dengan--language
opsi:$
cdk init app --language typescript
cdk init
Perintah membuat struktur file dan folder dalam hello-cdk
direktori untuk membantu mengatur kode sumber untuk aplikasi CDK Anda. Struktur file dan folder ini disebut proyek CDK Anda. Luangkan waktu sejenak untuk menjelajahi proyek CDK Anda.
Jika Anda memiliki Git diinstal, setiap proyek yang Anda buat menggunakan juga cdk init
diinisialisasi sebagai Git repositori.
Selama inisialisasi proyek, CDK CLI membuat aplikasi CDK yang berisi satu tumpukan CDK. Instance aplikasi CDK dibuat menggunakan App
konstruksi. Berikut ini adalah bagian dari kode ini dari file aplikasi CDK Anda:
Terletak dibin/hello-cdk.ts
:
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { HelloCdkStack } from '../lib/hello-cdk-stack';
const app = new cdk.App();
new HelloCdkStack(app, 'HelloCdkStack', {
});
Tumpukan CDK dibuat menggunakan Stack
konstruksi. Berikut ini adalah bagian dari kode ini dari file tumpukan CDK Anda:
Terletak dilib/hello-cdk-stack.ts
:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
export class HelloCdkStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Define your constructs here
}
}
Langkah 2: Konfigurasikan AWS lingkungan Anda
Pada langkah ini, Anda mengonfigurasi AWS lingkungan untuk tumpukan CDK Anda. Dengan melakukan ini, Anda menentukan lingkungan mana tumpukan CDK Anda akan digunakan.
Pertama, tentukan AWS lingkungan yang ingin Anda gunakan. AWS Lingkungan terdiri dari Akun AWS dan Wilayah AWS.
Ketika Anda menggunakan AWS CLI untuk mengkonfigurasi kredensi keamanan pada komputer lokal Anda, Anda kemudian dapat menggunakan AWS CLI untuk mendapatkan informasi AWS lingkungan untuk profil tertentu.
Untuk menggunakan AWS CLI untuk mendapatkan Akun AWS ID Anda
-
Jalankan AWS CLI perintah berikut untuk mendapatkan Akun AWS ID untuk
default
profil Anda:$
aws sts get-caller-identity --query "Account" --output text
-
Jika Anda lebih suka menggunakan profil bernama, berikan nama profil Anda menggunakan
--profile
opsi:$
aws sts get-caller-identity --profile
your-profile-name
--query "Account" --output text
Untuk menggunakan AWS CLI untuk mendapatkan Wilayah AWS
-
Jalankan AWS CLI perintah berikut untuk mendapatkan Wilayah yang Anda konfigurasikan untuk
default
profil Anda:$
aws configure get region
-
Jika Anda lebih suka menggunakan profil bernama, berikan nama profil Anda menggunakan
--profile
opsi:$
aws configure get region --profile
your-profile-name
Selanjutnya, Anda akan mengonfigurasi AWS lingkungan untuk tumpukan CDK Anda dengan memodifikasi HelloCdkStack
instance di file aplikasi Anda. Untuk tutorial ini, Anda akan membuat kode keras informasi AWS lingkungan Anda. Ini direkomendasikan untuk lingkungan produksi. Untuk informasi tentang cara lain untuk mengonfigurasi lingkungan, lihatKonfigurasikan lingkungan untuk digunakan dengan AWS CDK.
Untuk mengonfigurasi lingkungan untuk tumpukan CDK Anda
-
Dalam file aplikasi Anda, gunakan
env
propertiStack
konstruksi untuk mengkonfigurasi lingkungan Anda. Berikut adalah contohnya:Terletak di
bin/hello-cdk.ts
:#!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack', { env: { account: '123456789012', region: 'us-east-1' }, });
Langkah 3: Bootstrap AWS lingkungan Anda
Pada langkah ini, Anda mem-bootstrap AWS lingkungan yang Anda konfigurasikan pada langkah sebelumnya. Ini mempersiapkan lingkungan Anda untuk penerapan CDK.
Untuk mem-bootstrap lingkungan Anda, jalankan yang berikut ini dari root proyek CDK Anda:
$
cdk bootstrap
Dengan melakukan bootstrap dari root proyek CDK Anda, Anda tidak perlu memberikan informasi tambahan apa pun. CDK CLI memperoleh informasi lingkungan dari proyek Anda. Ketika Anda bootstrap di luar proyek CDK, Anda harus memberikan informasi lingkungan dengan cdk bootstrap
perintah. Untuk informasi selengkapnya, lihat Bootstrap lingkungan Anda untuk digunakan dengan AWS CDK.
Langkah 4: Bangun aplikasi CDK Anda
Di sebagian besar lingkungan pemrograman, Anda membangun atau mengkompilasi kode setelah melakukan perubahan. Ini tidak perlu dengan AWS CDK sejak CDK CLI akan secara otomatis melakukan langkah ini. Namun, Anda masih dapat membangun secara manual ketika Anda ingin menangkap kesalahan sintaks dan mengetik. Berikut adalah contohnya:
$
npm run build
> hello-cdk@0.1.0 build > tsc
Langkah 5: Daftar tumpukan CDK di aplikasi Anda
Pada titik ini, Anda harus memiliki aplikasi CDK yang berisi satu tumpukan CDK. Untuk memverifikasi, gunakan CDK CLI cdk list
perintah untuk menampilkan tumpukan Anda. Output harus menampilkan tumpukan tunggal bernamaHelloCdkStack
:
$
cdk list
HelloCdkStack
Jika Anda tidak melihat output ini, verifikasi bahwa Anda berada di direktori kerja yang benar dari proyek Anda dan coba lagi. Jika Anda masih tidak melihat tumpukan Anda, ulangi Langkah 1: Buat proyek CDK Anda dan coba lagi.
Langkah 6: Tentukan fungsi Lambda Anda
Pada langkah ini, Anda mengimpor aws_lambda
modul dari AWS Construct Library dan menggunakan konstruksi Function
L2.
Ubah file tumpukan CDK Anda sebagai berikut:
Terletak dilib/hello-cdk-stack.ts
:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
// Import the Lambda module
import * as lambda from 'aws-cdk-lib/aws-lambda';
export class HelloCdkStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Define the Lambda function resource
const myFunction = new lambda.Function(this, "HelloWorldFunction", {
runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime
handler: "index.handler",
code: lambda.Code.fromInline(`
exports.handler = async function(event) {
return {
statusCode: 200,
body: JSON.stringify('Hello World!'),
};
};
`),
});
}
}
Mari kita lihat lebih dekat Function
konstruksinya. Seperti semua konstruksi, Function
kelas mengambil tiga parameter:
-
scope — Mendefinisikan
Stack
instance Anda sebagai induk dariFunction
konstruksi. Semua konstruksi yang mendefinisikan AWS sumber daya dibuat dalam lingkup tumpukan. Anda dapat menentukan konstruksi di dalam konstruksi, membuat hierarki (pohon). Di sini, dan dalam banyak kasus, ruang lingkupnya adalahthis
(self
dalam Python). -
Id — ID build dari
Function
dalam AWS CDK aplikasi Anda. ID ini, ditambah hash berdasarkan lokasi fungsi di dalam tumpukan, secara unik mengidentifikasi fungsi selama penerapan. Ini AWS CDK juga mereferensikan ID ini saat Anda memperbarui build di aplikasi dan menerapkan ulang untuk memperbarui sumber daya yang diterapkan. Di sini, ID konstruksi Anda adalahHelloWorldFunction
. Fungsi juga dapat memiliki nama, ditentukan denganfunctionName
properti. Ini berbeda dengan ID konstruksi. -
props — Sebuah bundel nilai yang mendefinisikan properti dari fungsi. Di sini Anda mendefinisikan
runtime
,handler
, dancode
properti.Alat peraga diwakili secara berbeda dalam bahasa yang didukung oleh. AWS CDK
-
Masuk TypeScript and JavaScript,
props
adalah argumen tunggal dan Anda meneruskan objek yang berisi properti yang diinginkan. -
Masuk Python, alat peraga dilewatkan sebagai argumen kata kunci.
-
Masuk Java, Builder disediakan untuk melewati alat peraga. Ada dua: satu untuk
FunctionProps
, dan yang keduaFunction
untuk membiarkan Anda membangun konstruksi dan objek alat peraga dalam satu langkah. Kode ini menggunakan yang terakhir. -
Masuk C#, Anda membuat instance
FunctionProps
objek menggunakan penginisialisasi objek dan meneruskannya sebagai parameter ketiga.
Jika alat peraga konstruksi bersifat opsional, Anda dapat menghilangkan parameter sepenuhnya.
props
-
Semua konstruksi mengambil tiga argumen yang sama ini, jadi mudah untuk tetap berorientasi saat Anda belajar tentang yang baru. Dan seperti yang Anda duga, Anda dapat mensubkelas konstruksi apa pun untuk memperluasnya sesuai dengan kebutuhan Anda, atau jika Anda ingin mengubah defaultnya.
Langkah 7: Tentukan URL fungsi Lambda Anda
Pada langkah ini, Anda menggunakan metode addFunctionUrl
pembantu Function
konstruksi untuk menentukan URL fungsi Lambda. Untuk menampilkan nilai URL ini saat penerapan, Anda akan membuat AWS CloudFormation output menggunakan CfnOutput
konstruksi.
Tambahkan yang berikut ini ke file tumpukan CDK Anda:
Terletak dilib/hello-cdk-stack.ts
:
// ...
export class HelloCdkStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Define the Lambda function resource
// ...
// Define the Lambda function URL resource
const myFunctionUrl = myFunction.addFunctionUrl({
authType: lambda.FunctionUrlAuthType.NONE,
});
// Define a CloudFormation output for your URL
new cdk.CfnOutput(this, "myFunctionUrlOutput", {
value: myFunctionUrl.url,
})
}
}
Awas
Agar tutorial ini tetap sederhana, URL fungsi Lambda Anda didefinisikan tanpa otentikasi. Saat diterapkan, ini membuat titik akhir yang dapat diakses publik yang dapat digunakan untuk menjalankan fungsi Anda. Setelah selesai dengan tutorial ini, ikuti Langkah 12: Hapus aplikasi Anda untuk menghapus sumber daya ini.
Langkah 8: Sintesis template CloudFormation
Pada langkah ini, Anda mempersiapkan penerapan dengan mensintesis CloudFormation template dengan CDK CLI cdk
synth
perintah. Perintah ini melakukan validasi dasar kode CDK Anda, menjalankan aplikasi CDK Anda, dan menghasilkan CloudFormation template dari tumpukan CDK Anda.
Jika aplikasi berisi lebih dari satu tumpukan, Anda harus menentukan tumpukan mana yang akan disintesis. Karena aplikasi Anda berisi satu tumpukan, CDK CLI secara otomatis mendeteksi tumpukan untuk disintesis.
Jika Anda tidak mensintesis template, CDK CLI akan secara otomatis melakukan langkah ini saat Anda menyebarkan. Namun, kami menyarankan Anda menjalankan langkah ini sebelum setiap penerapan untuk memeriksa kesalahan sintesis.
Sebelum mensintesis template, Anda dapat membuat aplikasi secara opsional untuk menangkap kesalahan sintaks dan mengetik. Untuk petunjuk, silakan lihat Langkah 4: Bangun aplikasi CDK Anda.
Untuk mensintesis CloudFormation template, jalankan yang berikut ini dari root proyek Anda:
$
cdk synth
catatan
Jika Anda menerima kesalahan seperti berikut ini, verifikasi bahwa Anda berada di hello-cdk
direktori dan coba lagi:
--app is required either in command-line, in cdk.json or in ~/.cdk.json
Jika berhasil, CDK CLI akan menghasilkan a YAML CloudFormation —templat yang diformat ke stdout
dan menyimpan JSON—templat yang diformat dalam cdk.out
direktori proyek Anda.
Berikut ini adalah contoh output dari CloudFormation template:
Resources:
HelloWorldFunctionServiceRoleunique-identifier
:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service: lambda.amazonaws.com
Version: "2012-10-17"
ManagedPolicyArns:
- Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Metadata:
aws:cdk:path: HelloCdkStack/HelloWorldFunction/ServiceRole/Resource
HelloWorldFunctionunique-identifier
:
Type: AWS::Lambda::Function
Properties:
Code:
ZipFile: "
\ exports.handler = async function(event) {
\ return {
\ statusCode: 200,
\ body: JSON.stringify('Hello World!'),
\ };
\ };
\ "
Handler: index.handler
Role:
Fn::GetAtt:
- HelloWorldFunctionServiceRoleunique-identifier
- Arn
Runtime: nodejs20.x
DependsOn:
- HelloWorldFunctionServiceRoleunique-identifier
Metadata:
aws:cdk:path: HelloCdkStack/HelloWorldFunction/Resource
HelloWorldFunctionFunctionUrlunique-identifier
:
Type: AWS::Lambda::Url
Properties:
AuthType: NONE
TargetFunctionArn:
Fn::GetAtt:
- HelloWorldFunctionunique-identifier
- Arn
Metadata:
aws:cdk:path: HelloCdkStack/HelloWorldFunction/FunctionUrl/Resource
HelloWorldFunctioninvokefunctionurlunique-identifier
:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunctionUrl
FunctionName:
Fn::GetAtt:
- HelloWorldFunctionunique-identifier
- Arn
FunctionUrlAuthType: NONE
Principal: "*"
Metadata:
aws:cdk:path: HelloCdkStack/HelloWorldFunction/invoke-function-url
CDKMetadata:
Type: AWS::CDK::Metadata
Properties:
Analytics: v2:deflate64:unique-identifier
Metadata:
aws:cdk:path: HelloCdkStack/CDKMetadata/Default
Condition: CDKMetadataAvailable
Outputs:
myFunctionUrlOutput:
Value:
Fn::GetAtt:
- HelloWorldFunctionFunctionUrlunique-identifier
- FunctionUrl
Parameters:
BootstrapVersion:
Type: AWS::SSM::Parameter::Value<String>
Default: /cdk-bootstrap/unique-identifier
/version
Description: Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]
Rules:
CheckBootstrapVersion:
Assertions:
- Assert:
Fn::Not:
- Fn::Contains:
- - "1"
- "2"
- "3"
- "4"
- "5"
- Ref: BootstrapVersion
AssertDescription: CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.
catatan
Setiap template yang dihasilkan berisi AWS::CDK::Metadata
sumber daya secara default. AWS CDK Tim menggunakan metadata ini untuk mendapatkan wawasan tentang AWS CDK penggunaan dan menemukan cara untuk memperbaikinya. Untuk detailnya, termasuk cara memilih keluar dari pelaporan versi, lihatPelaporan versi.
Dengan mendefinisikan satu konstruksi L2, AWS CDK membuat CloudFormation template ekstensif yang berisi sumber daya Lambda Anda, bersama dengan izin dan logika lem yang diperlukan agar sumber daya Anda berinteraksi dalam aplikasi Anda.
Langkah 9: Menyebarkan tumpukan CDK Anda
Pada langkah ini, Anda menggunakan CDK CLI cdk deploy
perintah untuk menyebarkan tumpukan CDK Anda. Perintah ini mengambil CloudFormation template yang Anda buat dan menerapkannya AWS CloudFormation, yang menyediakan sumber daya Anda sebagai bagian dari tumpukan. CloudFormation
Dari akar proyek Anda, jalankan yang berikut ini. Konfirmasikan perubahan jika diminta:
$
cdk deploy
✨ Synthesis time: 2.69s HelloCdkStack: start: Buildingunique-identifier
:current_account-current_region HelloCdkStack: success: Builtunique-identifier
:current_account-current_region HelloCdkStack: start: Publishingunique-identifier
:current_account-current_region HelloCdkStack: success: Publishedunique-identifier
:current_account-current_region This deployment will make potentially sensitive changes according to your current security approval level (--require-approval broadening). Please confirm you intend to make the following modifications: IAM Statement Changes ┌───┬───────────────────────────────────────┬────────┬──────────────────────────┬──────────────────────────────┬───────────┐ │ │ Resource │ Effect │ Action │ Principal │ Condition │ ├───┼───────────────────────────────────────┼────────┼──────────────────────────┼──────────────────────────────┼───────────┤ │ + │ ${HelloWorldFunction.Arn} │ Allow │ lambda:InvokeFunctionUrl │ * │ │ ├───┼───────────────────────────────────────┼────────┼──────────────────────────┼──────────────────────────────┼───────────┤ │ + │ ${HelloWorldFunction/ServiceRole.Arn} │ Allow │ sts:AssumeRole │ Service:lambda.amazonaws.com │ │ └───┴───────────────────────────────────────┴────────┴──────────────────────────┴──────────────────────────────┴───────────┘ IAM Policy Changes ┌───┬───────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────┐ │ │ Resource │ Managed Policy ARN │ ├───┼───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤ │ + │ ${HelloWorldFunction/ServiceRole} │ arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole │ └───┴───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────┘ (NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299) Do you wish to deploy these changes (y/n)?y
Mirip dengancdk synth
, Anda tidak perlu menentukan AWS CDK tumpukan karena aplikasi berisi satu tumpukan.
Selama penyebaran, CDK CLI menampilkan informasi kemajuan saat tumpukan Anda digunakan. Setelah selesai, Anda dapat pergi ke AWS CloudFormation konsolHelloCdkStack
tumpukan Anda. Anda juga dapat pergi ke konsol Lambda untuk melihat sumber daya AndaHelloWorldFunction
.
Saat penerapan selesai, CDK CLI akan menampilkan URL titik akhir Anda. Salin URL ini untuk langkah selanjutnya. Berikut adalah contohnya:
... HelloCdkStack: deploying... [1/1] HelloCdkStack: creating CloudFormation changeset... ✅ HelloCdkStack ✨ Deployment time: 41.65s Outputs: HelloCdkStack.myFunctionUrlOutput = https://
<api-id>
.lambda-url.<Region>
.on.aws/ Stack ARN: arn:aws:cloudformation:Region
:account-id
:stack/HelloCdkStack/unique-identifier
✨ Total time: 44.34s
Langkah 10: Berinteraksi dengan aplikasi Anda AWS
Pada langkah ini, Anda berinteraksi dengan aplikasi Anda AWS dengan menjalankan fungsi Lambda Anda melalui URL fungsi. Saat Anda mengakses URL, fungsi Lambda Anda mengembalikan pesan. Hello World!
Untuk menjalankan fungsi Anda, akses URL fungsi melalui browser Anda atau dari baris perintah. Berikut adalah contohnya:
$
curl https://
"Hello World!"%<api-id>
.lambda-url.<Region>
.on.aws/
Langkah 11: Ubah aplikasi Anda
Pada langkah ini, Anda mengubah pesan yang dikembalikan oleh fungsi Lambda saat dipanggil. Anda melakukan diff menggunakan CDK CLI cdk diff
perintah untuk melihat pratinjau perubahan Anda dan menerapkan untuk memperbarui aplikasi Anda. Anda kemudian berinteraksi dengan aplikasi Anda AWS untuk melihat pesan baru Anda.
Ubah myFunction
instance di file tumpukan CDK Anda sebagai berikut:
Terletak dilib/hello-cdk-stack.ts
:
// ...
export class HelloCdkStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Modify the Lambda function resource
const myFunction = new lambda.Function(this, "HelloWorldFunction", {
runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime
handler: "index.handler",
code: lambda.Code.fromInline(`
exports.handler = async function(event) {
return {
statusCode: 200,
body: JSON.stringify('Hello CDK!'),
};
};
`),
});
// ...
Saat ini, perubahan kode Anda belum membuat pembaruan langsung ke sumber daya Lambda yang Anda gunakan. Kode Anda menentukan status sumber daya yang diinginkan. Untuk memodifikasi sumber daya yang digunakan, Anda akan menggunakan CDK CLI untuk mensintesis status yang diinginkan ke dalam AWS CloudFormation template baru. Kemudian, Anda akan menerapkan CloudFormation template baru Anda sebagai set perubahan. Set perubahan hanya membuat perubahan yang diperlukan untuk mencapai status baru yang Anda inginkan.
Untuk melihat pratinjau perubahan Anda, jalankan cdk diff
perintah. Berikut adalah contohnya:
$
cdk diff
Stack HelloCdkStack Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Resources [~] AWS::Lambda::Function HelloWorldFunction HelloWorldFunctionunique-identifier
└─ [~] Code └─ [~] .ZipFile: ├─ [-] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; └─ [+] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; ✨ Number of stacks with differences: 1
Untuk membuat perbedaan ini, CDK CLI kueri Akun AWS akun Anda untuk AWS CloudFormation template terbaru untuk HelloCdkStack
tumpukan. Kemudian, ia membandingkan template terbaru dengan template yang baru saja disintesis dari aplikasi Anda.
Untuk mengimplementasikan perubahan Anda, jalankan cdk deploy
perintah. Berikut adalah contohnya:
$
cdk deploy
✨ Synthesis time: 2.12s HelloCdkStack: start: Buildingunique-identifier
:current_account-current_region HelloCdkStack: success: Builtunique-identifier
:current_account-current_region HelloCdkStack: start: Publishingunique-identifier
:current_account-current_region HelloCdkStack: success: Publishedunique-identifier
:current_account-current_region HelloCdkStack: deploying... [1/1] HelloCdkStack: creating CloudFormation changeset... ✅ HelloCdkStack ✨ Deployment time: 26.96s Outputs: HelloCdkStack.myFunctionUrlOutput = https://unique-identifier
.lambda-url.<Region>
.on.aws/ Stack ARN: arn:aws:cloudformation:Region
:account-id
:stack/HelloCdkStack/unique-identifier
✨ Total time: 29.07s
Untuk berinteraksi dengan aplikasi Anda, ulangiLangkah 10: Berinteraksi dengan aplikasi Anda AWS. Berikut adalah contohnya:
$
curl https://
"Hello CDK!"%<api-id>
.lambda-url.<Region>
.on.aws/
Langkah 12: Hapus aplikasi Anda
Pada langkah ini, Anda menggunakan CDK CLI cdk destroy
perintah untuk menghapus aplikasi Anda. Perintah ini menghapus CloudFormation tumpukan yang terkait dengan tumpukan CDK Anda, yang mencakup sumber daya yang Anda buat.
Untuk menghapus aplikasi Anda, jalankan cdk destroy
perintah dan konfirmasikan permintaan Anda untuk menghapus aplikasi. Berikut adalah contohnya:
$
cdk destroy
Are you sure you want to delete: HelloCdkStack (y/n)?y
HelloCdkStack: destroying... [1/1] ✅ HelloCdkStack: destroyed
Langkah selanjutnya
Selamat! Anda telah menyelesaikan tutorial ini dan telah menggunakan AWS CDK untuk berhasil membuat, memodifikasi, dan menghapus sumber daya di AWS Cloud. Anda sekarang siap untuk mulai menggunakan AWS CDK.
Untuk mempelajari lebih lanjut tentang menggunakan bahasa pemrograman pilihan Anda, lihatBekerja dengan AWS CDK perpustakaan. AWS CDK
Untuk sumber daya tambahan, lihat berikut ini:
-
Cobalah Lokakarya CDK
untuk tur yang lebih mendalam yang melibatkan proyek yang lebih kompleks. -
Lihat referensi API untuk mulai menjelajahi konstruksi CDK yang tersedia untuk layanan favorit AWS Anda.
-
Kunjungi Construct Hub
untuk menemukan konstruksi yang dibuat oleh AWS dan lainnya. -
Jelajahi Contoh
menggunakan AWS CDK.
AWS CDK Ini adalah proyek sumber terbuka. Untuk berkontribusi, lihat Berkontribusi pada AWS Cloud Development Kit (AWS CDK)