View a markdown version of this page

Membangun Fungsi Acara Lambda dengan TypeScript - AWS Lambda

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

Membangun Fungsi Acara Lambda dengan TypeScript

Anda dapat menggunakan Node.js runtime untuk dijalankan TypeScript kode di AWS Lambda Fungsi Acara. Karena Node.js tidak berjalan TypeScript kode secara asli, Anda harus terlebih dahulu mentranspilasi TypeScript kode ke JavaScript. Kemudian, gunakan JavaScript file untuk menerapkan kode fungsi Anda ke Lambda. Kode Anda berjalan di lingkungan yang mencakup AWS SDK untuk JavaScript, dengan kredensi dari sebuah AWS Identity and Access Management (IAM) peran yang Anda kelola. Untuk mempelajari lebih lanjut tentang versi SDK yang disertakan dengan Node.js runtime, lihat Runtime-included Versi SDK.

Untuk informasi tentang penelusuran TypeScript fungsi dengan, lihat Menelusuri TypeScript kode di AWS Lambda.

Lambda mendukung yang berikut Node.js waktu proses.

Nama Pengidentifikasi Sistem operasi Tanggal pengusangan Blokir fungsi buat Pembaruan fungsi blok

Node.js 26

nodejs26.x

Amazon Linux 2023

Tidak dijadwalkan

Tidak dijadwalkan

Tidak dijadwalkan

Node.js 24

nodejs24.x

Amazon Linux 2023

30 April 2028

1 Juni 2028

1 Juli 2028

Node.js 22

nodejs22.x

Amazon Linux 2023

30 April 2027

29 Juli 2027

31 Agu 2027

Menyiapkan TypeScript lingkungan pengembangan

Gunakan lingkungan pengembangan terintegrasi lokal (IDE) atau editor teks untuk menulis TypeScript kode fungsi. Anda tidak dapat membuat TypeScript kode pada konsol Lambda.

Anda dapat menggunakan salah satu esbuild atau milik Microsoft TypeScript kompilator (tsc) untuk mentranspilasi Anda TypeScript kode ke JavaScript. AWS Serverless Application Model (AWS SAM) dan AWS Cloud Development Kit (AWS CDK) keduanya menggunakan esbuild.

Saat menggunakan esbuild, pertimbangkan hal berikut:

  • Ada beberapa TypeScript peringatan.

  • Anda harus mengkonfigurasi TypeScript pengaturan transpilasi agar sesuai dengan Node.js runtime yang Anda rencanakan untuk digunakan. Untuk informasi lebih lanjut, lihat Target dalam dokumentasi esbuild. Sebagai contoh dari a tsconfig.json file yang menunjukkan cara menargetkan yang spesifik Node.js versi yang didukung oleh Lambda, lihat TypeScript GitHub repositori.

  • esbuild tidak melakukan pemeriksaan tipe. Untuk memeriksa jenis, gunakan tsc kompiler. Jalankan tsc -noEmit atau tambahkan a "noEmit" parameter untuk Anda tsconfig.json file, seperti yang ditunjukkan pada contoh berikut. Ini mengonfigurasi tsc untuk tidak memancarkan JavaScript berkas. Setelah memeriksa jenis, gunakan esbuild untuk mengonversi TypeScript file ke JavaScript.

contoh tsconfig.json
{ "compilerOptions": { "target": "es2020", "strict": true, "preserveConstEnums": true, "noEmit": true, "sourceMap": false, "module":"commonjs", "moduleResolution":"node", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, }, "exclude": ["node_modules", "**/*.test.ts"] }

Definisi tipe untuk Lambda

@types/aws-Lambda paket menyediakan definisi tipe untuk Lambda Event Functions. Instal paket ini ketika fungsi Anda menggunakan salah satu dari berikut ini:

Untuk menambahkan definisi tipe Lambda ke fungsi Anda, instal @types/aws-lambda sebagai ketergantungan pengembangan:

npm install -D @types/aws-lambda

Kemudian, impor tipe dari aws-lambda:

import { Context, S3Event, APIGatewayProxyEvent } from 'aws-lambda'; export const handler = async (event: S3Event, context: Context) => { // Function code };

import ... from 'aws-lambda' pernyataan mengimpor definisi tipe. Itu tidak mengimpor aws-lambda paket npm, yang merupakan alat pihak ketiga yang tidak terkait. Untuk informasi lebih lanjut, lihat aws-lambda di DefinitelyTyped GitHub repositori.

catatan

Anda tidak perlu @types/aws-Lambda saat menggunakan definisi tipe kustom Anda sendiri. Untuk contoh fungsi yang mendefinisikan jenisnya sendiri untuk objek peristiwa, lihat Contoh kode TypeScript Fungsi Acara Lambda.