View a markdown version of this page

Membangun fungsi Lambda dengan Node.js - 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 Node.js

Anda dapat menjalankan JavaScript kode dengan Node.js in AWS Lambda. Lambda menyediakan runtime untuk Node.js menjalankan kode Anda untuk memproses peristiwa. Kode Anda berjalan di lingkungan yang mencakup AWS SDK for 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.

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

Untuk membuat Node.js fungsi
  1. Buka Konsol Lambda.

  2. Pilih Buat fungsi.

  3. Konfigurasikan pengaturan berikut:

    • Nama fungsi: Masukkan nama untuk fungsi tersebut.

    • Runtime: Pilih Node.js 24.x.

  4. Pilih Buat fungsi.

Konsol membuat fungsi Lambda dengan satu file sumber bernama index.mjs. Anda dapat mengedit file ini dan menambahkan lebih banyak file di editor kode bawaan. Di bagian DEPLOY, pilih De ploy untuk memperbarui kode fungsi Anda. Kemudian, untuk menjalankan kode Anda, pilih Buat acara pengujian di bagian TEST EVENTS.

File index.mjs mengekspor fungsi bernama handler yang menerima objek peristiwa dan objek konteks. Ini adalah fungsi handler yang dipanggil Lambda saat fungsi tersebut dipanggil. Runtime Node.js fungsi mendapatkan peristiwa pemanggilan dari Lambda dan meneruskannya ke handler. Dalam konfigurasi fungsi, nilai handler adalah index.handler.

Saat Anda menyimpan kode fungsi, konsol Lambda membuat paket penyebaran arsip file.zip. Saat Anda mengembangkan kode fungsi di luar konsol (menggunakan IDE), Anda perlu membuat paket penerapan untuk mengunggah kode Anda ke fungsi Lambda.

Runtime fungsi meneruskan objek konteks ke handler, selain peristiwa invokasi. Objek konteks berisi informasi tambahan tentang lingkungan invokasi, fungsi, dan eksekusi. Informasi selengkapnya tersedia dari variabel lingkungan.

Fungsi Lambda Anda dilengkapi dengan grup CloudWatch log log. Runtime fungsi mengirimkan detail tentang setiap invokasi ke CloudWatch Logs. Detail tersebut menyampaikan log yang dihasilkan fungsi Anda selama invokasi. Jika fungsi mengembalikan kesalahan, Lambda memformat kesalahan dan mengembalikannya ke pemanggil.

Runtime-included Versi SDK

Semua runtime Lambda Node.js yang didukung menyer takan versi minor tertentu dari AWS SDK for JavaScript v3, bukan versi terbaru. Versi minor spesifik yang disertakan dalam runtime tergantung pada versi runtime dan versi Anda Wilayah AWS. Untuk menemukan versi spesifik SDK yang disertakan dalam runtime yang Anda gunakan, buat fungsi Lambda dengan kode berikut.

contoh index.mjs
import packageJson from '@aws-sdk/client-s3/package.json' with { type: 'json' }; export const handler = async () => ({ version: packageJson.version });

Ini mengembalikan respons dalam format berikut:

{ "version": "3.632.0" }

Untuk informasi selengkapnya, lihat Menggunakan SDK untuk JavaScript v3 di handler Anda.

Menggunakan keep-alive untuk koneksi TCP

Node.js HTTP/HTTPS Agen default membuat koneksi TCP baru untuk setiap permintaan baru. Untuk menghindari biaya pembuatan koneksi baru, keep-alive diaktifkan secara default di semua runtime yang didukung Node.js . Keep-alive dapat mengurangi waktu permintaan untuk fungsi Lambda yang membuat beberapa panggilan API menggunakan SDK.

Untuk menonaktifkan keep-alive, lihat Menggunakan kembali koneksi dengan keep-alive Node.js di AWS SDK for 3.x Developer Guide. JavaScript Untuk informasi selengkapnya tentang menggunakan keep-alive, lihat HTTP keep-alive aktif secara default di AWS SDK modular untuk JavaScript di Blog Alat Peng AWS embang.

Pemuatan sertifikat CA

Untuk versi Node.js runtime hingga Node.js 18, Lambda secara otomatis memuat sertifikat Amazon-specific CA (otoritas sertifikat) untuk memudahkan Anda membuat fungsi yang berinteraksi dengan yang lain Layanan AWS. Misalnya, Lambda menyertakan sertifikat Amazon RDS yang diperlukan untuk memvalidasi sertifikat identitas server yang diinstal pada database Amazon RDS Anda. Perilaku ini dapat memiliki dampak kinerja selama start dingin.

Dimulai dengan Node.js 20, Lambda tidak lagi memuat sertifikat CA tambahan secara default. Runtime Node.js 20 berisi file sertifikat dengan semua sertifikat CA Amazon terletak di/var/runtime/ca-cert.pem. Untuk mengembalikan perilaku yang sama dari Node.js 18 dan runtime sebelumnya, atur variabel NODE_EXTRA_CA_CERTS lingkungan ke/var/runtime/ca-cert.pem.

Untuk kinerja yang optimal, sebaiknya gabungkan hanya sertifikat yang Anda butuhkan dengan paket penerapan Anda dan memuatnya melalui variabel NODE_EXTRA_CA_CERTS lingkungan. File sertifikat harus terdiri dari satu atau lebih sertifikat CA root atau perantara tepercaya dalam format PEM. Misalnya, untuk RDS, sertakan sertifikat yang diperlukan di samping kode Anda sebagaicertificates/rds.pem. Kemudian, muat sertifikat dengan menyetel NODE_EXTRA_CA_CERTS ke/var/task/certificates/rds.pem.

Node.js Fitur eksperimental

Rilis Node.js bahasa upstream mengaktifkan beberapa fitur eksperimental secara default. Lambda menonaktifkan fitur-fitur ini untuk memastikan stabilitas runtime dan kinerja yang konsisten. Tabel berikut mencantumkan fitur eksperimental yang dinonaktifkan Lambda.

Fitur eksperimental Node.js Versi yang didukung Node.js bendera diterapkan oleh Lambda Bendera Lambda untuk mengaktifkan kembali

Dukungan untuk mengimpor modul menggunakan persyaratan dalam modul ES

Node.js 20, Node.js 22, Node.js 24

--no-experimental-require-module

--experimental-require-module

Dukungan untuk mendeteksi modul ES vs CommonJS secara otomatis

Node.js 22, 2 Node.js 4

--no-experimental-detect-module

--experimental-detect-module

Untuk mengaktifkan fitur eksperimental yang dinonaktifkan, atur flag aktifkan kembali di variabel NODE_OPTIONS lingkungan. Misalnya, untuk mengaktifkan modul ES memerlukan dukungan, atur NODE_OPTIONS ke--experimental-require-module. Lambda mendeteksi penggantian ini dan menghapus flag nonaktifkan yang sesuai.

penting

Menggunakan fitur eksperimental dapat menyebabkan ketidakstabilan dan masalah kinerja. Fitur-fitur ini mungkin diubah atau dihapus di Node.js versi mendatang. Fungsi yang menggunakan fitur eksperimental tidak memenuhi syarat untuk Lambda Service Level Agreement (SLA) atau AWS Dukungan.