View a markdown version of this page

Mengkonfigurasi CloudWatch grup log - AWS Lambda

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

Mengkonfigurasi CloudWatch grup log

Secara default, CloudWatch secara otomatis membuat grup log bernama /aws/lambda/<function name> untuk fungsi Anda saat pertama kali dipanggil. Untuk mengonfigurasi fungsi Anda untuk mengirim log ke grup log yang ada, atau untuk membuat grup log baru untuk fungsi Anda, Anda dapat menggunakan konsol Lambda atau. AWS CLI Anda juga dapat mengonfigurasi grup log kustom menggunakan perintah CreateFunction dan UpdateFunctionConfiguration Lambda API dan sumber daya AWS Serverless Application Model (AWS SAM) AWS: :Serverless: :Function.

Anda dapat mengkonfigurasi beberapa fungsi Lambda untuk mengirim log ke grup CloudWatch log yang sama. Misalnya, Anda dapat menggunakan grup log tunggal untuk menyimpan log untuk semua fungsi Lambda yang membentuk aplikasi tertentu. Bila Anda menggunakan grup log kustom untuk fungsi Lambda, aliran log yang dibuat Lambda menyertakan nama fungsi dan versi fungsi. Ini memastikan bahwa pemetaan antara pesan log dan fungsi dipertahankan, bahkan jika Anda menggunakan grup log yang sama untuk beberapa fungsi.

Format penamaan aliran log untuk grup log kustom mengikuti konvensi ini:

YYYY/MM/DD/<function_name>[<function_version>][<execution_environment_GUID>]

Perhatikan bahwa saat mengonfigurasi grup log kustom, nama yang Anda pilih untuk grup log Anda harus mengikuti aturan penamaan Log. CloudWatch Selain itu, nama grup log khusus tidak boleh dimulai dengan stringaws/. Jika Anda membuat grup log kustom dimulai denganaws/, Lambda tidak akan dapat membuat grup log. Akibatnya, log fungsi Anda tidak akan dikirim ke CloudWatch.

Untuk mengubah grup log fungsi (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 panel Grup pencatatan, untuk grup CloudWatch log, pilih K ustom.

  6. Di bawah Grup log kustom, masukkan nama grup CloudWatch log tempat fungsi Anda ingin mengirim log. Jika Anda memasukkan nama grup log yang ada, maka fungsi Anda akan menggunakan grup itu. Jika tidak ada grup log dengan nama yang Anda masukkan, maka Lambda akan membuat grup log baru untuk fungsi Anda dengan nama itu.

Untuk mengubah grup log fungsi (AWS CLI)
  • Untuk mengubah grup log dari fungsi yang ada, gunakan perintah update-function-configuration.

    aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogGroup=myLogGroup
Untuk menentukan grup log kustom saat Anda membuat fungsi (AWS CLI)
  • Untuk menentukan grup log kustom saat Anda membuat fungsi Lambda baru menggunakan AWS CLI, gunakan --logging-config opsi. Perintah contoh berikut membuat fungsi Node.js Lambda yang mengirimkan log ke grup log bernamamyLogGroup.

    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 LogGroup=myLogGroup

Izin peran eksekusi

Agar fungsi Anda mengirim log ke CloudWatch Log, itu harus memiliki log: PutLogEvents izin. Saat Anda mengonfigurasi grup log fungsi Anda menggunakan konsol Lambda, Lambda menambahkan izin ini ke peran dalam kondisi berikut:

  • Tujuan layanan diatur ke CloudWatch Logs

  • Peran eksekusi fungsi Anda tidak memiliki izin untuk mengunggah CloudWatch log ke Log (tujuan default)

catatan

Lambda tidak menambahkan izin Put untuk tujuan log Amazon S3 atau Firehose.

Ketika Lambda menambahkan izin ini, ia memberikan izin fungsi untuk mengirim log ke grup log CloudWatch log mana pun.

Untuk mencegah Lambda memperbarui peran eksekusi fungsi secara otomatis dan mengeditnya secara manual, perluas Izin dan hapus centang Tam bah izin yang diperlukan.

Saat Anda mengonfigurasi grup log fungsi Anda menggunakan AWS CLI, Lambda tidak akan secara otomatis menambahkan logs:PutLogEvents izin. Tambahkan izin ke peran eksekusi fungsi Anda jika belum memilikinya. Izin ini disertakan dalam kebijakan ter AWSLambdaBasicExecutionRole kelola.

CloudWatch logging untuk Instans Terkelola Lambda

Saat menggunakan Inst ans Terkelola Lambda, ada pertimbangan tambahan untuk mengirim CloudWatch log ke Log:

Persyaratan jaringan VPC

Instans Terkelola Lambda berjalan pada instans EC2 milik pelanggan dalam VPC Anda. Untuk mengirim CloudWatch log ke Log dan melacak ke X-Ray, Anda harus memastikan bahwa AWS API ini dapat dirutekan dari VPC Anda. Anda memiliki beberapa pilihan:

  • AWS PrivateLink (disarankan): Gunakan AWS PrivateLink untuk membuat titik akhir VPC untuk CloudWatch Log dan X-Ray layanan. Hal ini memungkinkan instans Anda mengakses layanan ini secara pribadi tanpa memerlukan gateway internet atau gateway NAT. Untuk informasi selengkapnya, lihat Menggunakan CloudWatch Log dengan titik akhir antarmuka VPC.

  • NAT Gateway: Konfigurasikan gateway NAT untuk memungkinkan akses internet keluar dari subnet pribadi Anda.

  • Internet Gateway: Untuk subnet publik, pastikan VPC Anda memiliki gateway internet yang dikonfigurasi.

Jika CloudWatch Log atau X-Ray API tidak dapat dirutekan dari VPC Anda, log fungsi dan pelacakan Anda tidak dikirimkan.

Pemanggilan bersamaan dan atribusi log

Lingkungan eksekusi Instans Terkelola Lambda dapat memproses beberapa pemanggilan secara bersamaan. Ketika beberapa pemanggilan berjalan secara bersamaan, entri log mereka disisipkan dalam aliran log yang sama. Untuk memfilter dan menganalisis log secara efektif dari pemanggilan bersamaan, Anda harus memastikan setiap entri log menyertakan ID permintaan. AWS

Kami merekomendasikan salah satu pendekatan berikut:

  • Gunakan pencatat runtime Lambda default (disarankan): Pustaka logging default yang disediakan oleh runtime terkelola Lambda secara otomatis menyertakan ID permintaan di setiap entri log.

  • Menerapkan logging JSON terstruktur: Jika Anda membuat runtime khusus atau memerlukan pencatatan khusus, terapkan JSON-formatted log yang menyertakan ID permintaan di setiap entri. Instans Terkelola Lambda hanya mendukung format log JSON. Sertakan requestId bidang di log JSON Anda untuk mengaktifkan pemfilteran dengan pemanggilan:

    { "timestamp": "2025-01-15T10:30:00.000Z", "level": "INFO", "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "message": "Processing request" }

Dengan atribusi ID permintaan, Anda dapat memfilter entri log CloudWatch log untuk pemanggilan tertentu menggunakan kueri CloudWatch Logs Insights. Contoh:

fields @timestamp, @message | filter requestId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" | sort @timestamp asc

Untuk informasi selengkapnya tentang persyaratan pencatatan Instans Terkelola Lambda, lihatMemahami lingkungan eksekusi Instans Terkelola Lambda.