View a markdown version of this page

Log-level penyaringan - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Log-level penyaringan

Lambda dapat memfilter log fungsi Anda sehingga hanya log dari tingkat detail tertentu atau lebih rendah yang dikirim ke CloudWatch Log. Anda dapat mengonfigurasi penyaringan tingkat log secara terpisah untuk log sistem fungsi Anda (log yang dihasilkan Lambda) dan log aplikasi (log yang dihasilkan kode fungsi Anda).

UntukRuntime dan metode logging yang didukung, Anda tidak perlu membuat perubahan apa pun pada kode fungsi Anda agar Lambda dapat memfilter log aplikasi fungsi Anda.

Untuk semua runtime dan metode logging lainnya, kode fungsi Anda harus menampilkan peristiwa log ke stdout atau stderr sebagai objek berformat JSON yang berisi pasangan nilai kunci dengan kunci"level". Misalnya, Lambda menafsirkan output berikut stdout sebagai log level DEBUG.

print('{"level": "debug", "msg": "my debug log", "timestamp": "2024-11-02T16:51:31.587199Z"}')

Jika bidang "level" nilai tidak valid atau hilang, Lambda menetapkan output log level INFO. Agar Lambda dapat menggunakan bidang stempel waktu, Anda harus menentukan waktu dalam format stempel waktu RFC 3339 yang valid. Jika Anda tidak memberikan stempel waktu yang valid, Lambda menetapkan log level INFO dan menambahkan stempel waktu untuk Anda.

Saat memberi nama kunci stempel waktu, ikuti konvensi runtime yang Anda gunakan. Lambda mendukung konvensi penamaan yang paling umum digunakan oleh runtime terkelola.

catatan

Untuk menggunakan penyaringan tingkat log, fungsi Anda harus dikonfigurasi untuk menggunakan format log JSON. Format log default untuk semua runtime yang dikelola Lambda saat ini adalah teks biasa. Untuk mempelajari cara mengonfigurasi format log fungsi Anda ke JSON, lihatMengatur format log fungsi Anda.

Untuk log aplikasi (log yang dihasilkan oleh kode fungsi Anda), Anda dapat memilih antara tingkat log berikut.

Tingkat log Penggunaan standar
TRACE (paling detail) Informasi paling halus yang digunakan untuk melacak jalur eksekusi kode Anda
DEBUG Informasi terperinci untuk debugging sistem
INFO Pesan yang merekam operasi normal fungsi Anda
WARN Pesan tentang potensi kesalahan yang dapat menyebabkan perilaku tak terduga jika tidak ditangani
ERROR Pesan tentang masalah yang mencegah kode berfungsi seperti yang diharapkan
FATAL (paling sedikit detail) Pesan tentang kesalahan serius yang menyebabkan aplikasi berhenti berfungsi

Ketika Anda memilih tingkat log, Lambda mengirimkan log pada level itu dan lebih rendah ke CloudWatch Log. Misalnya, jika Anda menyetel level log aplikasi fungsi ke WARN, Lambda tidak mengirim output log pada level INFO dan DEBUG. Level log aplikasi default untuk penyaringan log adalah INFO.

Saat Lambda memfilter log aplikasi fungsi Anda, pesan log tanpa level ditetapkan INFO tingkat log.

Untuk log sistem (log yang dihasilkan oleh layanan Lambda), Anda dapat memilih antara tingkat log berikut.

Tingkat log Penggunaan
DEBUG (paling detail) Informasi terperinci untuk debugging sistem
INFO Pesan yang merekam operasi normal fungsi Anda
PERINGATAN (paling sedikit detail) Pesan tentang potensi kesalahan yang dapat menyebabkan perilaku tak terduga jika tidak ditangani

Ketika Anda memilih tingkat log, Lambda mengirimkan log pada level itu dan lebih rendah. Misalnya, jika Anda menyetel level log sistem fungsi ke INFO, Lambda tidak mengirim output log pada tingkat DEBUG.

Secara default, Lambda mengatur level log sistem ke INFO. Dengan pengaturan ini, Lambda secara otomatis mengirim "start" dan "report" mencatat pesan ke CloudWatch. Untuk menerima log sistem yang kurang lebih rinci, ubah level log menjadi DEBUG atau WARN. Untuk melihat daftar level log yang dipetakan Lambda ke berbagai peristiwa log sistem, lihatPemetaan peristiwa tingkat log sistem.

Mengkonfigurasi penyaringan tingkat log

Untuk mengkonfigurasi penyaringan tingkat log aplikasi dan sistem untuk fungsi Anda, Anda dapat menggunakan konsol Lambda atau (). AWS Command Line Interface AWS CLI Anda juga dapat mengonfigurasi level log fungsi menggunakan perintah CreateFunction dan UpdateFunctionConfiguration Lambda API, sumber daya AWS Serverless Application Model (AWS SAM) AWS::Serverless: :Function, dan sumber daya CloudFormation AWS::Lambda:: Function.

Perhatikan bahwa jika Anda menetapkan tingkat log fungsi dalam kode Anda, pengaturan ini lebih diutamakan daripada setelan tingkat log lainnya yang Anda konfigurasikan. Misalnya, jika Anda menggunakan logging setLevel() metode Python untuk menyetel level logging fungsi Anda ke INFO, pengaturan ini lebih diutamakan daripada setelan WARN yang Anda konfigurasikan menggunakan konsol Lambda.

Untuk mengkonfigurasi aplikasi fungsi yang ada atau tingkat log sistem (konsol)
  1. Buka halaman Fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pada halaman konfigurasi fungsi, pilih Alat Pem antauan dan operasi.

  4. Di panel konfigurasi logging, pilih Edit.

  5. Di bawah Kon ten log, untuk format Log pastikan JSON dipilih.

  6. Dengan menggunakan tombol radio, pilih tingkat log aplikasi dan tingkat log sistem yang diinginkan untuk fungsi Anda.

  7. Pilih Simpan.

Untuk mengkonfigurasi aplikasi fungsi yang ada atau tingkat log sistem (AWS CLI)
  • Untuk mengubah tingkat log aplikasi atau sistem dari fungsi yang ada, gunakan perintah update-function-configuration. Gunakan --logging-config untuk mengatur SystemLogLevel ke salah satuDEBUG,INFO, atauWARN. Set ApplicationLogLevel el ke salah satuDEBUG,INFO,WARN,ERROR, atauFATAL.

    aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
Untuk mengkonfigurasi penyaringan tingkat log saat Anda membuat fungsi
  • Untuk mengonfigurasi penyaringan tingkat log saat Anda membuat fungsi baru, gunakan --logging-config untuk mengatur ApplicationLogLevel tombol SystemLogLevel dan dalam perintah cre ate-function. Set SystemLogLevel el ke salah satuDEBUG,INFO, atauWARN. Set ApplicationLogLevel el ke salah satuDEBUG,INFO,WARN,ERROR, atauFATAL.

    aws lambda create-function \ --function-name myFunction \ --runtime nodejs24.x \ --handler index.handler \ --zip-file fileb://function.zip \ --role arn:aws:iam::123456789012:role/LambdaRole \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN

Pemetaan peristiwa tingkat log sistem

Untuk peristiwa log tingkat sistem yang dihasilkan oleh Lambda, tabel berikut mendefinisikan tingkat log yang ditetapkan untuk setiap peristiwa. Untuk mempelajari lebih lanjut tentang peristiwa yang tercantum dalam tabel, lihat Referensi skema peristiwa API Telemetri Lambda

Nama peristiwa Kondisi Tingkat log yang ditetapkan
InitStart RuntimeVersion diatur INFO
InitStart RuntimeVersion tidak disetel DEBUG
inisiatif RuntimeDone status=sukses DEBUG
inisiatif RuntimeDone status! =sukses WARN
InitReport Jenis inisialisasi! =sesuai permintaan INFO
InitReport initializationType=sesuai permintaan DEBUG
InitReport status! =sukses WARN
Restore Restart RuntimeVersion diatur INFO
Restore Restart RuntimeVersion tidak disetel DEBUG
mengembalikan RuntimeDone status=sukses DEBUG
mengembalikan RuntimeDone status! =sukses WARN
RestoreReport status=sukses INFO
RestoreReport status! =sukses WARN
start - INFO
RuntimeOne status=sukses DEBUG
RuntimeOne status! =sukses WARN
laporan status=sukses INFO
laporan status! =sukses WARN
luas state=sukses INFO
luas negara! =sukses WARN
LogBerlangganan - INFO
TelemetriLangganan - INFO
LogDijatuhkan - WARN
catatan

Sel Mengakses data telemetri real-time untuk ekstensi menggunakan API Telemetri alu memancarkan rangkaian lengkap acara platform. Mengkonfigurasi level log sistem yang dikirim Lambda CloudWatch tidak memengaruhi perilaku API Telemetri Lambda.

Pemfilteran tingkat log aplikasi dengan runtime khusus

Saat Anda mengonfigurasi pemfilteran tingkat log aplikasi untuk fungsi Anda, di balik layar Lambda menetapkan tingkat log aplikasi dalam runtime menggunakan variabel lingkungan. AWS_LAMBDA_LOG_LEVEL Lambda juga mengatur format log fungsi Anda menggunakan variabel AWS_LAMBDA_LOG_FORMAT lingkungan. Anda dapat menggunakan variabel ini untuk mengintegrasikan kontrol logging lanjutan Lambda ke dalam runtime Membangun runtime khusus untuk AWS Lambda khusus.

Untuk kemampuan mengonfigurasi pengaturan logging untuk fungsi menggunakan runtime khusus dengan konsol Lambda, AWS CLI, dan Lambda API, konfigurasikan runtime kustom Anda untuk memeriksa nilai variabel lingkungan ini. Anda kemudian dapat mengonfigurasi logger runtime Anda sesuai dengan format log dan tingkat log yang Anda pilih.