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 |
|
Amazon Linux 2023 |
30 April 2028 |
1 Juni 2028 |
1 Juli 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 April 2027 |
1 Juni 2027 |
1 Juli 2027 |
Topik
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 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
tsckompiler. Jalantsc -noEmitkan atau tambahkan"noEmit"parameter ke file tsconfig.json Anda, seperti yang ditunjukkan pada contoh berikut. Ini mengonfigurasitscuntuk 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
-
Sumber AWS acara umum, seperti:
-
APIGatewayProxyEvent: Untuk integrasi proxy Amazon API Gateway -
SNSEvent: Untuk pemberitahuan Layanan Pemberitahuan Sederhana Amazon -
SQSEvent: Untuk pesan Amazon Simple Queue Service -
S3Event: Untuk peristiwa pemicu S3 -
DynamoDBStreamEvent: Untuk Amazon DynamoDB Streams
-
-
Objek Konteks Lambda Menggunakan objek konteks Lambda untuk mengambil informasi fungsi TypeScript
-
Pola pengendali panggilan balik
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
catatan
Anda tidak memerlukan @ types/aws -lambda