Pencatatan dan metrik untukAWS Lambda - AWS Bimbingan Preskriptif

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

Pencatatan dan metrik untukAWS Lambda

Lambdamenghilangkan kebutuhan untuk mengelola dan memantau server untuk beban kerja Anda dan secara otomatis bekerja dengan CloudWatchMetrik dan CloudWatch Log tanpa konfigurasi atau instrumentasi lebih lanjut dari kode aplikasi Anda. Bagian ini membantu Anda memahami karakteristik kinerja sistem yang digunakan oleh Lambda dan bagaimana pilihan konfigurasi Anda memengaruhi kinerja. Ini juga membantu Anda mencatat dan memantau fungsi Lambda Anda untuk pengoptimalan kinerja dan mendiagnosis masalah tingkat aplikasi.

Pencatatan fungsi Lambda

Lambda secara otomatis mengalirkan output standar dan pesan kesalahan standar dari fungsi Lambda ke CloudWatch Log, tanpa memerlukan driver logging. Lambda juga secara otomatis menyediakan kontainer yang menjalankan fungsi Lambda Anda dan mengonfigurasinya untuk menampilkan pesan log dalam aliran log terpisah.

Pemanggilan berikutnya dari fungsi Lambda Anda dapat menggunakan kembali wadah dan output yang sama ke aliran log yang sama. Lambda juga dapat menyediakan wadah baru dan menampilkan pemanggilan ke aliran log baru.

Lambda secara otomatis membuat grup log saat fungsi Lambda Anda pertama kali dipanggil. Fungsi Lambda dapat memiliki beberapa versi dan Anda dapat memilih versi yang ingin Anda jalankan. Semua log untuk pemanggilan fungsi Lambda disimpan dalam grup log yang sama. Nama tidak dapat diubah dan ada di/aws/lambda/<YourLambdaFunctionName>format. Aliran log terpisah dibuat di grup log untuk setiap instance fungsi Lambda. Lambda memiliki konvensi penamaan standar untuk aliran log yang menggunakanYYYY/MM/DD/[<FunctionVersion>]<InstanceId>format. TheInstanceIddihasilkan olehAWSuntuk mengidentifikasi instance fungsi Lambda.

Kami menyarankan Anda memformat pesan log Anda dalam format JSON karena Anda dapat menanyakannya dengan lebih mudah CloudWatch Wawasan Log. Mereka juga dapat lebih mudah disaring dan diekspor. Anda dapat menggunakan pustaka logging untuk menyederhanakan proses ini atau menulis fungsi penanganan log Anda sendiri. Sebaiknya gunakan pustaka logging untuk membantu memformat dan mengklasifikasikan pesan log. Misalnya, jika fungsi Lambda Anda ditulis dengan Python, Anda dapat menggunakanModul logging Pythonuntuk mencatat pesan dan mengontrol format output. Lambda secara asli menggunakan pustaka logging Python untuk fungsi Lambda yang ditulis dengan Python, dan Anda dapat mengambil dan menyesuaikan logger dalam fungsi Lambda Anda.AWS Labs telah menciptakanAWSLambda Powertools untuk Pythontoolkit pengembang untuk mempermudah memperkaya pesan log dengan data kunci seperti cold start. Toolkit ini tersedia untuk Python, Java, TypeScript, dan .NET.

Praktik terbaik lainnya adalah mengatur tingkat keluaran log dengan menggunakan variabel dan menyesuaikannya berdasarkan lingkungan dan kebutuhan Anda. Kode fungsi Lambda Anda, selain pustaka yang digunakan, dapat menampilkan sejumlah besar data log tergantung pada tingkat keluaran log. Ini dapat memengaruhi biaya pencatatan Anda dan memengaruhi kinerja.

Lambda memungkinkan Anda untuk mengatur variabel lingkungan untuk lingkungan runtime fungsi Lambda Anda tanpa memperbarui kode Anda. Misalnya, Anda dapat membuatLAMBDA_LOG_LEVELvariabel lingkungan yang mendefinisikan tingkat keluaran log yang dapat Anda ambil dari kode Anda. Contoh berikut mencoba untuk mengambilLAMBDA_LOG_LEVELvariabel lingkungan dan menggunakan nilai untuk menentukan output logging. Jika variabel lingkungan tidak disetel, defaultnyaINFOtingkat.

import logging from os import getenv logger = logging.getLogger() log_level = getenv("LAMBDA_LOG_LEVEL", "INFO") level = logging.getLevelName(log_level) logger.setLevel(level)

Mengirim log ke tujuan lain dari CloudWatch

Anda dapat mengirim log ke tujuan lain (misalnya, Amazon OpenSearch Layanan atau fungsi Lambda) dengan menggunakan filter berlangganan. Jika Anda tidak menggunakan Amazon OpenSearch Layanan, Anda dapat menggunakan fungsi Lambda untuk memproses log dan mengirimkannya keAWSLayanan pilihan Anda menggunakanAWSSDK.

Anda juga dapat menggunakan SDK untuk tujuan log di luarAWSCloud di fungsi Lambda Anda untuk langsung mengirim pernyataan log ke tujuan pilihan Anda. Jika Anda memilih opsi ini, kami sarankan Anda mempertimbangkan dampak latensi, waktu pemrosesan tambahan, penanganan kesalahan dan coba lagi, dan penggabungan logika operasional ke fungsi Lambda Anda.

Metrik fungsi Lambda

Lambda memungkinkan Anda menjalankan kode Anda tanpa mengelola atau menskalakan server dan ini hampir menghilangkan beban audit dan diagnostik tingkat sistem. Namun, tetap penting untuk memahami metrik kinerja dan pemanggilan di tingkat sistem untuk fungsi Lambda Anda. Ini membantu Anda mengoptimalkan konfigurasi sumber daya dan meningkatkan kinerja kode. Memantau dan mengukur kinerja secara efektif dapat meningkatkan pengalaman pengguna dan menurunkan biaya Anda dengan mengukur fungsi Lambda Anda dengan tepat. Biasanya, beban kerja yang berjalan sebagai fungsi Lambda juga memiliki metrik tingkat aplikasi yang perlu ditangkap dan dianalisis. Lambda secara langsung mendukung format metrik yang disematkan untuk menangkap tingkat aplikasi CloudWatch metrik lebih mudah.

Metrik tingkat sistem

Lambda secara otomatis terintegrasi dengan CloudWatch Metrik dan menyediakan satu setmetrik standar untuk fungsi Lambda Anda. Lambda juga menyediakan dasbor pemantauan terpisah untuk setiap fungsi Lambda dengan metrik ini. Dua metrik penting yang perlu Anda pantau adalah kesalahan dan kesalahan pemanggilan. Memahami perbedaan antara kesalahan pemanggilan dan jenis kesalahan lainnya membantu Anda mendiagnosis dan mendukung penerapan Lambda.

Kesalahan pemanggilanmencegah fungsi Lambda Anda berjalan. Kesalahan ini terjadi sebelum kode Anda dijalankan sehingga Anda tidak dapat menerapkan penanganan kesalahan dalam kode Anda untuk mengidentifikasi mereka. Sebagai gantinya, Anda harus mengonfigurasi alarm untuk fungsi Lambda Anda yang mendeteksi kesalahan ini dan memberi tahu pemilik operasi dan beban kerja. Kesalahan ini sering terkait dengan kesalahan konfigurasi atau izin dan dapat terjadi karena perubahan konfigurasi atau izin Anda. Kesalahan pemanggilan mungkin memulai percobaan ulang, yang menyebabkan beberapa pemanggilan fungsi Anda.

Fungsi Lambda yang berhasil dipanggil mengembalikan respons HTTP 200 bahkan jika pengecualian dilemparkan oleh fungsi tersebut. Fungsi Lambda Anda harus menerapkan penyerahan kesalahan dan memunculkan pengecualian sehinggaErrorsmetrik menangkap dan mengidentifikasi fungsi Lambda Anda yang gagal. Anda harus mengembalikan respons yang diformat dari pemanggilan fungsi Lambda yang menyertakan informasi untuk menentukan apakah proses gagal sepenuhnya, sebagian, atau berhasil.

CloudWatch memberiCloudWatch Wawasan Lambdayang dapat Anda aktifkan untuk fungsi Lambda individual. Lambda Insights mengumpulkan, mengumpulkan, dan merangkum metrik tingkat sistem (misalnya, waktu CPU, memori, disk, dan penggunaan jaringan). Lambda Insights juga mengumpulkan, mengumpulkan, dan merangkum informasi diagnostik (misalnya, start dingin dan penutupan pekerja Lambda) untuk membantu Anda mengisolasi dan menyelesaikan masalah dengan cepat.

Lambda Insights menggunakan format metrik yang disematkan untuk secara otomatis memancarkan informasi kinerja ke/aws/lambda-insights/grup log dengan awalan nama aliran log berdasarkan nama fungsi Lambda Anda. Peristiwa log kinerja ini dibuat CloudWatch metrik yang menjadi dasar untuk otomatis CloudWatch dasbor. Kami menyarankan Anda mengaktifkan Lambda Insights untuk pengujian kinerja dan lingkungan produksi. Metrik tambahan yang dibuat oleh Lambda Insights meliputimemory_utilizationyang membantu mengukur fungsi Lambda dengan benar sehingga Anda menghindari pembayaran untuk kapasitas yang tidak diperlukan.

Metrik aplikasi

Anda juga dapat membuat dan menangkap metrik aplikasi Anda sendiri di CloudWatch menggunakan format metrik tertanam. Anda dapat memanfaatkanAWS menyediakan pustaka untuk format metrik yang disematkanuntuk membuat dan memancarkan pernyataan format metrik yang disematkan ke CloudWatch. Lambda terintegrasi CloudWatch fasilitas logging dikonfigurasi untuk memproses dan mengekstrak pernyataan format metrik tertanam yang diformat dengan tepat.