View a markdown version of this page

Membangun fungsi 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 Lambda dengan TypeScript

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

Untuk informasi tentang TypeScript fungsi pelacakan dengan, lihatMenelus TypeScript uri kode di AWS Lambda.

Lambda mendukung Node.js runtime berikut.

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

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

1 Juni 2027

1 Juli 2027

Menyiapkan lingkungan TypeScript pengembangan

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

Anda dapat menggunakan esbuild atau TypeScript kompiler Microsoft (tsc) untuk mentranspilasi kode Anda ke. TypeScript 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 mengonfigurasi pengaturan TypeScript transpilasi agar sesuai dengan Node.js runtime yang Anda rencanakan untuk digunakan. Untuk informasi selengkapnya, lihat Target dalam dokumentasi esbuild. Untuk contoh file tsconfig.json yang menunjukkan cara menargetkan Node.js versi tertentu yang didukung oleh Lambda, lihat repositori. TypeScript GitHub

  • esbuild tidak melakukan pemeriksaan tipe. Untuk memeriksa jenis, gunakan tsc kompiler. Jalan tsc -noEmit kan atau tambahkan "noEmit" parameter ke file tsconfig.json Anda, seperti yang ditunjukkan pada contoh berikut. Ini mengonfigurasi tsc untuk tidak memancarkan JavaScript file. Setelah memeriksa jenis, gunakan esbuild untuk mengonversi TypeScript file menjadi 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

Paket @ types/aws -lambda menyediakan definisi tipe untuk fungsi Lambda. 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 dependensi pengembangan:

npm install -D @types/aws-lambda

Kemudian, impor jenis dariaws-lambda:

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

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

catatan

Anda tidak memerlukan @ types/aws -lambda saat menggunakan definisi tipe kustom Anda sendiri. Untuk contoh fungsi yang mendefinisikan jenisnya sendiri untuk objek peristiwa, lihatContoh kode fungsi TypeScript Lambda.