Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Log Fungsi Web di CloudWatch Log Amazon
AWS Lambda menangkap semua yang ditulis aplikasi Anda ke output standar dan kesalahan standar dan mengirimkannya ke Amazon CloudWatch Logs, bersama dengan log sistem yang dihasilkan Lambda sendiri. DalamNode.js, output dari setiap console metode, seperticonsole.log,console.info, danconsole.error, ditangkap secara otomatis dan disaring oleh applicationLogLevel pengaturan. Library logging yang menulis ke output standar atau kesalahan standar juga ditangkap. Anda tidak memerlukan agen logging atau Amazon CloudWatch Logs SDK.
Lambda menulis console output sebagai peristiwa log JSON dan menambahkanrequestId,endpointName, dan region bidang ke setiap acara. Sebagai contoh, lihat Menulis log terstruktur.
Lambda mengumpulkan log di masing-masing Wilayah AWS tempat Fungsi Web Anda berjalan dan kemudian memusatkannya ke Wilayah rumah fungsi. HomeRegionTitik akhir hanya berjalan di Wilayah asal. PerRegionTitik akhir MultiRegion atau titik akhir juga berjalan di Wilayah lain yang Anda tentukan, sehingga Lambda memusatkan log dari masing-masing Wilayah tersebut. Untuk informasi selengkapnya, lihat Jenis titik akhir.
Grup log
Secara default, Lambda mengirimkan log Fungsi Web Anda ke grup log yang dinamai fungsi:
/aws/lambda/web/function-name
Bersamaan dengan grup log terpusat, Lambda menggunakan grup log pendamping untuk menyimpan log In-region sebelum disentralisasi. Nama pendamping adalah nama grup log terpusat diikuti oleh.local, untuk grup log default dan grup log kustom. Untuk grup log default, pendampingnya adalah:
/aws/lambda/web/function-name.local
Lambda menulis log ke grup .local log di setiap Wilayah tempat permintaan dijalankan, termasuk Wilayah asal, dan kemudian memusatkannya ke dalam grup log tanpa akhiran di Wilayah beranda. Setiap grup .local log hanya menyimpan log dari Wilayahnya sendiri. Lambda tidak menghapus peristiwa dari grup .local log setelah sentralisasi. Pengaturan retensi grup log menentukan berapa lama mereka tetap ada.
Grup log tidak ada sampai Fungsi Web Anda melayani permintaan pertamanya. Grup log terpusat di Wilayah beranda mungkin muncul setelah grup .local log. Untuk waktu sentralisasi, lihatLatensi sentralisasi.
Lambda membuat grup log default dan setiap grup log dengan setelan .local CloudWatch Log Amazon default, sehingga peristiwanya tidak akan kedaluwarsa kecuali Anda menetapkan kebijakan penyimpanan. Anda dapat mengubah kebijakan retensi, enkripsi, dan sumber daya setelah Lambda membuatnya. Tetapkan ini pada grup .local log di setiap Wilayah tempat titik akhir berjalan dan pada grup log terpusat di Wilayah asal.
Karena grup .local log tidak menunggu sentralisasi, ini berguna untuk men-debug masalah di Wilayah tertentu. Grup log terpusat menyimpan log dari setiap Wilayah, jadi buat kueri bersama, filter langganan, filter metrik, dan otomatisasi yang harus mencakup seluruh aplikasi pada grup log terpusat. Untuk bagaimana telemetri berperilaku di setiap Wilayah, lihat. Telemetri di setiap Wilayah
Menggunakan grup log kustom
Anda dapat mengirim log Fungsi Web Anda ke grup log yang Anda pilih, bukan default. Gunakan grup log kustom saat Anda menginginkan kebijakan penyimpanan, enkripsi, atau sumber daya sebelum peristiwa log pertama tiba. Grup log kustom juga memungkinkan Anda mengelompokkan log dari beberapa fungsi bersama-sama. Untuk menerapkan pengaturan tersebut sejak awal, buat grup log dan .local pendampingnya sendiri sebelum Anda mengarahkan lalu lintas ke revisi. Jika salah satu grup log tidak ada, Lambda membuatnya pada penggunaan pertama dengan pengaturan default, dan Anda dapat memperbarui pengaturannya sesudahnya. Lambda dapat membuat grup log hanya jika peran eksekusi memiliki izin untuk membuat grup log. Untuk izin yang diperlukan, lihat Peran eksekusi.
Untuk mengirim log ke grup log kustom (AWS CLI)
-
Di Wilayah beranda, buat grup log dan
.localpendampingnya, dan atur retensi yang Anda inginkan pada masing-masing. UntukPerRegiontitik akhirMultiRegionatau titik akhir, buat juga grup.locallog di setiap Wilayah lain yang dilayani titik akhir, dengan menjalankan.localperintah yang--regiondisetel ke Wilayah tersebut.aws logs create-log-group --log-group-name/my-app/web-logsaws logs create-log-group --log-group-name/my-app/web-logs.local aws logs put-retention-policy \ --log-group-name/my-app/web-logs\ --retention-in-days 30 aws logs put-retention-policy \ --log-group-name/my-app/web-logs.local \ --retention-in-days 30 -
Buat revisi yang menentukan grup log di
telemetryConfigbagian.serviceConfigaws lambda-web create-web-function-revision \ --function-namemy-web-app\ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "telemetryConfig": { "loggingConfig": { "logGroup": "/my-app/web-logs" } } }' -
Rute lalu lintas ke revisi baru. Untuk informasi selengkapnya, lihat Pola deployment.
Karena konfigurasi logging adalah bagian dari revisi, itu tidak dapat diubah untuk revisi itu. Untuk mengubah grup log nanti, buat revisi lain. Untuk informasi selengkapnya, lihat Mengelola revisi Fungsi Web.
Kontrol logging
loggingConfigBagian ini mengontrol tujuan dan tingkat keparahan minimum log. Pengaturan ini adalah bagian dari revisi.
| Pengaturan | Nilai | Default | Deskripsi |
|---|---|---|---|
logGroup |
Nama grup log | /aws/lambda/web/ |
Grup CloudWatch log Amazon Logs yang menerima log Anda. |
applicationLogLevel |
TRACE | DEBUG | INFO |
WARN | ERROR | FATAL |
INFO |
Tingkat keparahan minimum log aplikasi Anda yang dikirim Lambda ke Amazon CloudWatch Logs. Log di bawah level ini dijatuhkan. Node.jstidak memiliki metode FATAL konsol, jadi tingkat FATAL berperilaku sebagaiERROR. |
systemLogLevel |
DEBUG | INFO | WARN |
INFO |
Tingkat keparahan minimum log Lambda-generated sistem yang dikirim Lambda ke Amazon CloudWatch Logs. Untuk tingkat setiap peristiwa sistem, lihatLog sistem. |
Contoh berikut membuat revisi yang menjatuhkan log aplikasi di bawah iniWARN:
aws lambda-web create-web-function-revision \ --function-namemy-web-app\ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "telemetryConfig": { "loggingConfig": { "applicationLogLevel": "WARN", "systemLogLevel": "INFO" } } }'
applicationLogLevelPeningkatan produksi mengurangi volume log dan biaya. Turunkan sementara ke DEBUG atau TRACE ketika Anda sedang menyelidiki suatu masalah.
Log sistem
Selain output aplikasi Anda, grup log Anda menerima log sistem yang dihasilkan Lambda tentang siklus hidup lingkungan eksekusi, seperti inisialisasi lingkungan dan shutdown. Gunakan systemLogLevel untuk mengontrol berapa banyak yang dipancarkan Lambda ini.
Log sistem berguna untuk menghubungkan perilaku aplikasi dengan peristiwa platform. Misalnya, lonjakan latensi yang sejalan dengan entri inisialisasi lingkungan menunjukkan awal yang dingin daripada kode aplikasi Anda. Untuk siklus hidup yang dijelaskan oleh log ini, lihat. Siklus hidup lingkungan eksekusi
Fungsi Web memancarkan peristiwa sistem berikut. Atur systemLogLevel ke level terendah yang Anda butuhkan. Misalnya, atur DEBUG ke menerimaplatform.requestComplete, atau hanya menerima kegagalan dan peringatan dropped-log. WARN
| Tipe peristiwa | Tingkat | Catatan |
|---|---|---|
platform.initStart |
INFO |
Tidak ada |
platform.initReport |
INFOpada kesuksesan, WARN pada kegagalan |
Kegagalan menunjukkan kesalahan inisialisasi, seperti kesalahan saat mengimpor kode Anda. |
platform.invokeStart |
INFO |
Tidak ada |
platform.requestComplete |
DEBUG |
Dipancarkan sekali untuk setiap permintaan HTTP, termasuk permintaan yang gagal. Karena volumenya tinggi, tidak dipancarkan pada tingkat log sistem default. |
platform.invokeSummary |
INFO |
Berkala. Dipancarkan setiap 60 detik untuk setiap lingkungan eksekusi aktif. |
platform.invokeReport |
INFOpada kesuksesan, WARN pada kegagalan |
|
platform.spinDownStart |
INFO |
|
platform.spinDownReport |
INFOpada kesuksesan, WARN pada kegagalan |
Kegagalan menunjukkan bahwa aplikasi Anda tidak keluar dalam waktu 1 detik setelah menerima SIGTERM (Runtime.SpinDownTimeout) atau keluar dengan error (Runtime.ExitError). |
platform.logsDropped |
WARN |
Menunjukkan bahwa Lambda menghapus peristiwa log. |
Untuk bidang di setiap acara sistem, lihatSkema peristiwa log sistem untuk Fungsi Web Lambda.
Header lambda-web-request-id respons mengidentifikasi permintaan, dan header lambda-web-logstream respons mengidentifikasi aliran log untuk lingkungan yang menanganinya. Gunakan nilai-nilai ini untuk mengkorelasikan respons klien dengan log aplikasi dan sistem. Untuk informasi selengkapnya, lihat Header respons.
Untuk menemukan peristiwa dari aliran log yang diidentifikasi dalam grup log terpusat di Wilayah beranda, filter berdasarkan nama aliran sebagai awalan. Anda juga dapat membaca aliran dengan nama persisnya dari grup .local log di Wilayah yang melayani permintaan.
aws logs filter-log-events \ --log-group-name /aws/lambda/web/my-web-app\ --log-stream-name-prefix "LAMBDA_WEB_LOGSTREAM" \ --regionus-east-1
Untuk mengikuti log terbaru saat mereproduksi masalah, gunakan:
aws logs tail /aws/lambda/web/my-web-app\ --follow \ --regionus-east-1
Menulis log terstruktur
Berikan objek ke console metode sehingga Lambda menulisnya sebagai objek JSON di lapangan. message Anda kemudian dapat menanyakan setiap bidang di Amazon CloudWatch Logs Insights daripada mencocokkan substring. Jangan melewatkan string yang Anda buat denganJSON.stringify. Lambda menulis string sebagai nilai string yang lolos, sehingga bidangnya tidak dapat ditanyakan.
function logRequest(req, statusCode, durationMs) { console.info({ method: req.method, path: req.url, statusCode: statusCode, durationMs: durationMs }); }
Lambda menulis peristiwa log yang mirip dengan yang berikut ini:
{ "timestamp": "2026-09-25T11:29:02.711Z", "level": "INFO", "message": { "method": "GET", "path": "/hello-world", "statusCode": 200, "durationMs": 100 }, "requestId": "US3NHLM77IRXDFLBADYHGIZZNM", "endpointName": "prod", "region": "us-east-1" }
Anda kemudian dapat menanyakan bidang secara langsung. Misalnya, kueri Amazon CloudWatch Logs Insights berikut menampilkan 20 permintaan terbaru yang menampilkan status 5xx:
fields @timestamp, message.method, message.path, message.statusCode, message.durationMs | filter message.statusCode >= 500 | sort @timestamp desc | limit 20
Untuk memublikasikan metrik kustom dari log Anda, bukan hanya menanyainya, gunakan format metrik yang disematkan. Untuk informasi selengkapnya, lihat Menerbitkan metrik kustom dengan format metrik yang disematkan.
Menggunakan fitur Amazon CloudWatch Logs dengan log Anda
Karena log dipusatkan ke Wilayah asal, Anda dapat menggunakan fitur CloudWatch Log Amazon standar di Wilayah tersebut, termasuk:
-
Live Tail - Streaming peristiwa log saat mereka tiba saat Anda mereproduksi masalah. Peristiwa mencapai grup log terpusat setelah sentralisasi, jadi untuk penundaan terpendek, jalankan Live Tail pada grup
.locallog di Wilayah yang melayani permintaan Anda. -
Wawasan Log - Bidang kueri dalam peristiwa log JSON Anda.
-
Sentralisasi log — Teruskan log Anda ke akun atau tujuan lain menggunakan fitur sentralisasi CloudWatch Log Amazon, jika Anda menggabungkan log di luar akun fungsi.
-
Filter langganan dan filter metrik — Memicu pemrosesan hilir atau dapatkan metrik dari pola log.
Terapkan fitur yang harus mencakup seluruh aplikasi ke grup log terpusat di Wilayah asal. Grup .local log hanya menyimpan log dari Wilayahnya sendiri. Lihat informasi yang lebih lengkap di Telemetri di setiap Wilayah.