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 |
|
Amazon Linux 2023 |
Tidak dijadwalkan |
Tidak dijadwalkan |
Tidak dijadwalkan |
|
Node.js 24 |
|
Amazon Linux 2023 |
30 April 2028 |
1 Juni 2028 |
1 Juli 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 April 2027 |
29 Juli 2027 |
31 Agu 2027 |
Topik
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 esbuildtsc) 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
tsckompiler. Jalankantsc -noEmitatau tambahkan a"noEmit"parameter untuk Anda tsconfig.json file, seperti yang ditunjukkan pada contoh berikut. Ini mengonfigurasitscuntuk 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
-
Umum AWS sumber acara, seperti:
-
APIGatewayProxyEvent: Untuk Integrasi proxy Amazon API Gateway -
SNSEvent: Untuk Pemberitahuan Layanan Pemberitahuan Sederhana Amazon -
SQSEvent: Untuk Pesan Layanan Antrian Sederhana Amazon -
S3Event: Untuk Peristiwa pemicu S3 -
DynamoDBStreamEvent: Untuk Aliran Amazon DynamoDB
-
-
Lambda Konteks objek
-
panggilan balik pola handler
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
catatan
Anda tidak perlu @types/aws-Lambda