FAQ tentang AWS Lambda
Umum
Buka semuaLihat dokumentasi kami untuk daftar lengkap sumber peristiwa.
AWS Lambda sejak awal mendukung kode Java, Go, PowerShell, Node.js, C#, Python, dan Ruby, serta menyediakan Runtime API yang memungkinkan Anda menggunakan bahasa pemrograman tambahan apa pun untuk menulis fungsi Anda. Baca dokumentasi kami tentang penggunaan Node.js, Python, Java, Ruby, C#, Go, dan PowerShell.
Setiap fungsi AWS Lambda berjalan di lingkungannya sendiri yang terisolasi, dengan sumber daya dan tampilan sistem file-nya sendiri. AWS Lambda menggunakan teknik yang sama dengan Amazon EC2 untuk memberikan keamanan dan pemisahan di tingkat infrastruktur dan eksekusi. Kunjungi dokumentasi untuk mempelajari selengkapnya.
AWS Lambda menyimpan kode di Amazon S3 dan mengenkripsinya saat istirahat. AWS Lambda melakukan pemeriksaan integritas tambahan saat kode Anda sedang digunakan. Untuk informasi sensitif, seperti kata sandi basis data, sebaiknya gunakan enkripsi di sisi klien menggunakan AWS Key Management Service dan simpan nilai yang dihasilkan sebagai teks sandi dalam variabel lingkungan Anda. Anda harus menyertakan logika dalam kode fungsi AWS Lambda Anda untuk mendekripsi nilai-nilai ini. Kunjungi dokumentasi untuk mempelajari selengkapnya.
-
Menjaga fungsi stateless memungkinkan AWS Lambda meluncurkan dengan cepat sebanyak mungkin salinan fungsi sebagaimana diperlukan untuk menskalakan ke tingkat kejadian yang masuk. Meski model pemrograman AWS Lambda stateless, kode Anda dapat mengakses data stateful dengan memanggil layanan web lain, seperti Amazon S3 atau Amazon DynamoDB.
Ya. Anda dapat dengan mudah membuat dan memodifikasi variabel lingkungan dari Konsol AWS Lambda, CLI, atau SDK. Untuk mempelajari selengkapnya variabel lingkungan, lihat dokumentasi.
Untuk informasi sensitif, seperti kata sandi basis data, sebaiknya gunakan enkripsi di sisi klien menggunakan AWS Key Management Service dan simpan nilai yang dihasilkan sebagai teks sandi dalam variabel lingkungan Anda. Anda harus menyertakan logika dalam kode fungsi AWS Lambda Anda untuk mendekripsi nilai-nilai ini.
Ya, Anda dapat mengemas kode apa pun (kerangka kerja, SDK, pustaka, dan lainnya) sebagai Lapisan Lambda dan mengelola serta membagikannya dengan mudah di berbagai fungsi.
AWS Lambda secara otomatis memantau fungsi Lambda untuk Anda, melaporkan metrik waktu nyata melalui Amazon CloudWatch, termasuk total permintaan, penggunaan konkurensi tingkat akun dan tingkat fungsi, latensi, tingkat kesalahan, dan permintaan terbatas. Anda dapat melihat statistik untuk setiap fungsi Lambda melalui konsol Amazon CloudWatch atau melalui konsol AWS Lambda. Anda juga dapat memanggil API pemantauan pihak ketiga dalam fungsi Lambda Anda.
Kunjungi Memecahkan masalah metrik CloudWatch untuk mempelajari selengkapnya. Biaya standar untuk AWS Lambda berlaku untuk penggunaan metrik bawaan Lambda.
Dalam model sumber daya AWS Lambda, Anda memilih jumlah memori yang diinginkan untuk fungsi Anda, serta dialokasikan daya CPU proporsional dan sumber daya lainnya. Misalnya, memilih memori 256 MB akan mengalokasikan kira-kira dua kali lipat daya CPU ke fungsi Lambda Anda seperti meminta memori 128 MB, dan setengah kali lipat daya CPU seperti memilih memori 512 MB. Untuk mempelajari selengkapnya, lihat dokumentasi Konfigurasi Fungsi kami.
Anda dapat mengatur memori Anda dari 128 MB menjadi 10.240 MB.
-
Fungsi AWS Lambda dapat dikonfigurasi agar berjalan hingga 15 menit per eksekusi. Anda dapat mengatur batas waktu ke nilai antara 1 hingga 15 menit.
AWS Lambda diberi harga berdasarkan bayar per penggunaan. Harap lihat halaman harga AWS Lambda untuk detailnya.
Ya. Secara default, setiap fungsi AWS Lambda memiliki satu versi kode terkini. Klien fungsi Lambda Anda dapat memanggil versi tertentu atau mendapatkan implementasi terbaru. Baca dokumentasi kami tentang penentuan versi fungsi Lambda.
AWS Lambda menawarkan opsi deployment yang fleksibel: kemas dan deploy fungsi sebagai arsip file.zip yang dapat Anda unggah langsung melalui konsol, CLI, atau SDK, atau sebagai gambar kontainer. Kedua metode menyediakan lingkungan pelaksanaan, penskalaan, dan kesederhanaan operasional yang sama, memberi Anda fleksibilitas untuk memilih pendekatan yang paling sesuai dengan alur kerja Anda.
Menggunakan AWS Lambda untuk memproses peristiwa AWS
Buka semua-
Sumber peristiwa adalah layanan AWS atau aplikasi buatan developer yang memproduksi peristiwa yang memicu fungsi AWS Lambda untuk berjalan. Beberapa layanan memublikasikan kejadian ini ke Lambda dengan memanggil fungsi cloud secara langsung (misalnya, Amazon S3). Lambda juga dapat meminta sumber daya di layanan lain yang tidak memublikasikan kejadian ke Lambda. Misalnya, Lambda dapat menarik catatan dari stream Amazon Kinesis atau antrean Amazon SQS dan mengeksekusi fungsi Lambda untuk setiap pesan yang diambil. Banyak layanan lain, seperti AWS CloudTrail, dapat bertindak sebagai sumber peristiwa hanya dengan masuk ke Amazon S3 dan menggunakan notifikasi bucket S3 untuk memicu fungsi AWS Lambda
Anda dapat menginvokasi fungsi Lambda menggunakan kejadian khusus melalui API invokasi AWS Lambda. Hanya pemilik fungsi atau akun AWS lain yang pemiliknya memberikan izin yang dapat memanggil fungsi tersebut. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya.
-
Anda dapat menginvokasi fungsi Lambda melalui HTTPS dengan menentukan API RESTful khusus menggunakan Amazon API Gateway. Hal ini memberikan Anda titik akhir untuk fungsi yang dapat merespons ke panggilan REST seperti GET, PUT, dan POST. Baca selengkapnya tentang menggunakan AWS Lambda dengan Amazon API Gateway.
AWS Lambda Snapstart
Buka semuaAWS Lambda SnapStart dapat meningkatkan performa startup dari beberapa detik menjadi subdetik untuk aplikasi yang sensitif terhadap latensi. SnapStart bekerja dengan mengambil snapshot status memori (dan disk) yang diinisialisasi fungsi dan menyimpan cache snapshot tersebut untuk akses latensi rendah. Setelah fungsi Anda diinvokasi, Lambda melanjutkan lingkungan pelaksanaan dari snapshot yang sudah diinisialisasi ini, alih-alih memulai dari awal sehingga latensi startup pun menjadi lebih baik. Untuk ketahanan, Lambda menyimpan salinan cache snapshot dan secara otomatis menerapkan pembaruan perangkat lunak, seperti peningkatan runtime dan patch keamanan. Kunjungi dokumentasi untuk mempelajari selengkapnya.
Lambda SnapStart merupakan sebuah konfigurasi tingkat fungsi sederhana yang dapat dikonfigurasikan untuk fungsi lama maupun baru menggunakan API Lambda, Konsol Manajemen AWS, AWS Command Line Interface (CLI), AWS SDK, AWS Cloud Development Kit (CDK), AWS CloudFormation, dan AWS Serverless Application Model (SAM). Saat Anda mengonfigurasi Lambda SnapStart, setiap fungsi versi yang dipublikasikan kemudian mendapatkan manfaat dari peningkatan performa startup yang ditawarkan oleh Lambda SnapStart. Untuk mempelajari selengkapnya tentang Lambda SnapStart, lihat dokumentasi.
Lambda SnapStart adalah optimisasi performa yang membantu fungsi mencapai waktu startup lebih cepat dengan mengurangi latensi variabel yang ditanggung selama pelaksanaan kode inisialisasi yang dilakukan satu kali. Meski mengurangi latensi startup, Lambda SnapStart berfungsi sebagai pengoptimalan upaya terbaik, dan tidak menjamin eliminasi cold start. Jika aplikasi Anda mempunyai persyaratan latensi yang ketat dan memerlukan waktu startup dua digit milidetik, kami sarankan Anda menggunakan PC.
Lambda SnapStart mendukung beberapa runtime, termasuk Java 11 (dan yang lebih baru), Python 3.12 (dan yang lebih baru), serta .NET 8 (dan yang lebih baru). Versi runtime mendatang akan didukung setelah dirilis. Untuk semua runtime yang didukung oleh Lambda, lihat dokumentasi runtime Lambda.
-
Tidak. Lambda SnapStart dan PC tidak dapat diaktifkan bersamaan, pada fungsi yang sama.
Ya. Anda dapat mengonfigurasikan fungsi Lambda SnapStart untuk mengakses sumber daya di cloud privat virtual (VPC). Untuk informasi selengkapnya mengenai cara mengonfigurasi fungsi dengan VPC, lihat dokumentasi Lambda.
Ya, Anda akan dikenai biaya untuk caching snapshot selama periode versi fungsi Anda aktif, minimal 3 jam dan per milidetik setelahnya. Harga bergantung pada jumlah memori yang dialokasikan untuk fungsi Anda. Anda juga akan dikenai biaya tiap kali Lambda melanjutkan lingkungan pelaksanaan dengan memulihkan snapshot, dan harganya tergantung pada jumlah memori yang dialokasikan untuk fungsi Anda. Untuk mempelajari selengkapnya harga SnapStart, kunjungi Harga AWS Lambda.
Harga SnapStart tidak berlaku untuk runtime terkelola Java yang didukung, yang hanya dapat menyimpan cache snapshot hingga 14 hari.
Provisioned Concurency
Buka semuaProvisioned Concurrency memberi Anda kontrol lebih besar pada kinerja aplikasi nirserver Anda. Jika diaktifkan, Provisioned Concurrency menjaga fungsi selalu dimulai dan sangat siap untuk merespons dalam milidetik dua digit.
Anda dapat mengonfigurasi konkurensi pada fungsi Anda melalui Konsol Manajemen AWS, Lambda API, AWS CLI, dan AWS CloudFormation. Cara termudah mendapatkan manfaat dari Provisioned Concurrency adalah dengan menggunakan AWS Auto Scaling. Anda dapat menggunakan Application Auto Scaling untuk mengonfigurasi jadwal, atau meminta Auto Scaling untuk menyesuaikan level Provisioned Concurrency secara otomatis dalam real time sebagai perubahan permintaan. Untuk mempelajari selengkapnya tentang Konkurensi yang Tersedia, lihat dokumentasi.
Provisioned Concurrency menambahkan dimesi harga dari 'Provisioned Concurrency', agar fungsi selalu diinisialisasi. Bila diaktifkan, Anda membayar untuk jumlah konkurensi yang Anda konfigurasi dan untuk periode waktu selama Anda mengonfigurasinya. Ketika fungsi Anda dijalankan selagi Provisioned Concurrency dikonfigurasi di dalamnya, Anda juga membayar Permintaan dan Durasi eksekusi. Untuk mempelajari harga Provisioned Concurrency selengkapnya, lihat Harga AWS Lambda.
-
Provisioned Concurrency cocok untuk membuat aplikasi yang sensitif terhadap latensi, seperti web atau mobile backend, API yang diinvokasi secara sinkron, dan layanan mikro interaktif. Anda dapat dengan mudah mengonfigurasi jumlah konkurensi yang sesuai berdasarkan permintaan unik aplikasi Anda. Anda dapat menambah jumlah konkurensi saat permintaan meningkat dan menguranginya, atau mematikan sepenuhnya, saat permintaan menurun.
Lambda@Edge
Buka semuaLambda@Edge memungkinkan Anda menjalankan kode di lokasi AWS secara global tanpa menyediakan atau mengelola server untuk merespons pengguna akhir dengan latensi jaringan terendah. Anda cukup mengunggah kode Node.js atau Python ke AWS Lambda dan mengonfigurasi fungsi untuk dipicu sebagai respons terhadap permintaan Amazon CloudFront (yaitu ketika permintaan penampil tiba, ketika permintaan diteruskan ke atau diterima kembali dari asalnya, dan tepat sebelum merespons kembali ke pengguna akhir). Kode ini kemudian siap untuk dieksekusi di lokasi AWS secara global ketika permintaan untuk konten diterima, kemudian menskalakan dengan volume permintaan CloudFront secara global. Pelajari selengkapnya di dokumentasi kami.
Untuk menggunakan Lambda@Edge, Anda cukup mengunggah kode ke AWS Lambda dan mengaitkan versi fungsi untuk dipicu sebagai respons permintaan Amazon CloudFront. Kode harus memenuhi service limits Lambda@Edge. Lambda@Edge mendukung Node.js dan Python untuk permintaan global oleh kejadian CloudFront pada saat ini. Pelajari selengkapnya di dokumentasi kami.
Lambda@Edge dioptimalkan untuk kasus penggunaan latensi sensitif saat pengguna akhir Anda didistribusikan secara global. Semua informasi yang Anda perlukan untuk membuat keputusan seharusnya tersedia di edge CloudFront, dalam fungsi dan permintaan. Hal ini berarti bahwa kasus penggunaan ketika Anda ingin membuat keputusan tentang cara menyajikan konten berdasarkan karakteristik pengguna (misalnya, lokasi, perangkat klien, dll.) sekarang dapat dijalankan dan disajikan dekat dengan pengguna Anda tanpa harus dirutekan kembali ke pusat server.
Anda dapat mengaitkan fungsi Lambda yang sudah ada dengan kejadian CloudFront untuk invokasi global jika fungsi tersebut memenuhi persyaratan dan batasan layanan Lambda@Edge. Baca selengkapnya di sini cara memperbarui properti fungsi Anda.
Skalabilitas dan ketersediaan
Buka semua-
AWS Lambda didesain untuk menggunakan replikasi dan redundansi guna memberikan ketersediaan yang tinggi untuk layanan itu sendiri maupun fungsi Lambda yang dioperasikannya. Tidak ada jendela pemeliharaan atau waktu henti terjadwal untuk keduanya.
-
Ya. Ketika Anda memperbarui fungsi Lambda, akan ada jendela waktu singkat, biasanya kurang dari satu menit, ketika permintaan dapat disajikan oleh versi lama atau versi baru dari fungsi Anda.
Tidak. AWS Lambda didesain untuk menjalankan banyak instans fungsi Anda secara paralel. Namun, AWS Lambda memiliki pembatas keamanan default, untuk sejumlah eksekusi bersamaan per akun per region (kunjungi di sini untuk info tentang batas pembatas keamanan default). Anda juga dapat mengontrol eksekusi bersamaan maksimum untuk masing-masing fungsi AWS Lambda, yang dapat Anda gunakan untuk mencadangkan subset dari batas konkurensi akun Anda untuk fungsi-fungsi penting, atau membatasi tingkat lalu lintas ke sumber daya hilir.
Jika Anda ingin mengirimkan permintaan untuk meningkatkan batas eksekusi bersamaan, Anda dapat menggunakan Service Quotas untuk meminta peningkatan batas.
Jika melebihi batas eksekusi bersamaan maksimum, fungsi AWS Lambda yang diinvokasi secara sinkronis akan mengembalikan kesalahan throttling (kode kesalahan 429). Fungsi Lambda yang diinvokasi secara asinkronis dapat menyerap lonjakan lalu lintas yang wajar selama sekitar 15-30 menit, setelah itu peristiwa yang masuk akan ditolak karena dibatasi. Jika fungsi Lambda sedang dipanggil sebagai respons atas kejadian Amazon S3, kejadian yang ditolak oleh AWS Lambda dapat disimpan dan dicoba kembali oleh S3 selama 24 jam. Kejadian dari Amazon Kinesis Streams dan Amazon DynamoDB Streams dicoba ulang hingga fungsi Lambda berhasil atau data kedaluwarsa. Amazon Kinesis dan Amazon DynamoDB Streams mempertahankan data selama 24 jam.
Batas eksekusi bersamaan maksimum default diterapkan pada tingkat akun. Namun, Anda juga dapat menetapkan batas pada masing-masing fungsi (kunjungi di sini untuk info tentang Konkurensi Terpesan).
Setiap fungsi Lambda yang diinvokasi secara sinkronis dapat menskalakan hingga 1.000 eksekusi bersamaan setiap 10 detik. Sementara tingkat penskalaan Lambda cocok untuk sebagian besar kasus penggunaan, Lambda sangat ideal bagi mereka yang memiliki lonjakan lalu lintas yang dapat diprediksi atau tidak dapat diprediksi. Misalnya, pemrosesan data terikat SLA akan membutuhkan penskalaan yang dapat diprediksi namun cepat untuk memenuhi permintaan pemrosesan. Demikian pula, menyajikan artikel berita terbaru, atau penjualan kilat dapat mendorong tingkat lalu lintas yang tidak dapat diprediksi dalam waktu singkat. Tingkat penskalaan Lambda dapat memfasilitasi kasus penggunaan tanpa konfigurasi atau alat tambahan. Selain itu, batas penskalaan konkurensi adalah batas tingkat fungsi, yang berarti setiap fungsi di akun Anda diskalakan secara independen dari fungsi lainnya.
-
Jika gagal, fungsi Lambda yang diinvokasi secara sinkronis akan merespons dengan pengecualian. Fungsi Lambda yang dipanggil secara asinkronis dicoba ulang setidaknya 3 kali. Kejadian dari Amazon Kinesis Streams dan Amazon DynamoDB Streams dicoba ulang hingga fungsi Lambda berhasil atau data kedaluwarsa. Kinesis dan DynamoDB Streams mempertahankan data selama minimal 24 jam.
Jika melebihi kebijakan coba lagi untuk panggilan asinkronis, Anda dapat mengonfigurasi "dead letter queue" (DLQ) ke tempat kejadian akan diletakkan; dengan tidak adanya DLQ yang dikonfigurasi, kejadian tersebut dapat ditolak. Jika kebijakan percobaan ulang untuk invokasi berbasis stream terlampaui, data akan kedaluwarsa dan karenanya ditolak.
-
Anda dapat mengonfigurasi antrean Amazon SQS atau topik Amazon SNS sebagai antrean dead letter.
Keamanan dan kontrol akses
Buka semuaAnda memberikan izin untuk fungsi Lambda guna mengakses sumber daya lain menggunakan peran IAM AWS Lambda mengasumsikan peran saat mengeksekusi fungsi Lambda Anda, jadi Anda selalu me-retain kontrol penuh dan aman dari sumber daya AWS yang tepat yang dapat digunakan. Kunjungi Menyiapkan AWS Lambda untuk mempelajari selengkapnya tentang peran.
Ketika Anda mengonfigurasi bucket Amazon S3 untuk mengirim pesan ke fungsi AWS Lambda, aturan kebijakan sumber daya yang memberikan akses akan dibuat. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya kebijakan sumber daya dan kontrol akses untuk fungsi Lambda.
Kontrol akses dikelola melalui peran fungsi Lambda. Peran yang Anda berikan untuk fungsi Lambda juga menentukan sumber daya mana yang dapat diminta oleh AWS Lambda untuk dirinya sendiri. Kunjungi Panduan Developer Lambda untuk mempelajari selengkapnya.
-
Kontrol akses dapat dikelola oleh peran fungsi Lambda atau pengaturan kebijakan sumber daya pada antrean itu sendiri. Jika kedua kebijakan itu ada, kedua izin yang makin terbatas tersebut akan diterapkan.
Anda dapat mengaktifkan fungsi Lambda untuk mengakses sumber daya di VPC Anda dengan menentukan subnet dan grup keamanan sebagai bagian dari konfigurasi fungsi Anda. Fungsi Lambda yang dikonfigurasi untuk mengakses sumber daya di VPC tertentu tidak akan memiliki akses ke internet sebagai konfigurasi default. Untuk memberikan internet ke fungsi-fungsi ini, gunakan gateway internet. Secara default, fungsi Lambda berkomunikasi dengan sumber daya dalam VPC dual-stack melalui IPv4. Anda dapat mengonfigurasi fungsi Anda untuk mengakses sumber daya dalam VPC dual-stack melalui IPv6. Untuk detail selengkapnya mengenai fungsi Lambda yang dikonfigurasikan dengan VPC, lihat Jaringan Privat Lambda dengan VPC.
Penandatanganan Kode untuk AWS Lambda menawarkan kontrol kepercayaan dan integritas yang memungkinkan Anda memverifikasi bahwa hanya kode yang tidak diubah dari developer yang disetujui yang diterapkan di fungsi Lambda. Anda dapat menggunakan AWS Signer, layanan penandatanganan kode yang terkelola penuh, untuk menandatangani artefak kode secara digital dan mengonfigurasi fungsi Lambda guna memverifikasi tanda tangan saat deployment. Penandatanganan Kode untuk AWS Lambda saat ini hanya tersedia untuk fungsi yang dikemas sebagai arsip ZIP.
Anda dapat membuat artefak kode yang ditandatangani secara digital menggunakan Profil Penandatanganan melalui konsol AWS Signer, Signer API, SAM CLI, atau AWS CLI. Untuk mempelajari selengkapnya, baca dokumentasi untuk AWS Signer.
-
Anda dapat mengaktifkan penandatanganan kode dengan membuat Konfigurasi Penandatanganan Kode melalui Konsol Manajemen AWS, Lambda API, AWS CLI, AWS CloudFormation, dan AWS SAM. Konfigurasi Penandatanganan Kode membantu Anda menentukan profil penandatanganan yang disetujui dan mengonfigurasi apakah akan memperingatkan atau menolak deployment jika pemeriksaan tanda tangan gagal. Konfigurasi Penandatanganan Kode dapat dilampirkan ke fungsi Lambda individu untuk mengaktifkan fitur penandatanganan kode. Fungsi tersebut sekarang mulai memverifikasi tanda tangan saat deployment.
AWS Lambda dapat menjalankan pemeriksaan tanda tangan berikut saat deployment:
• Tanda tangan rusak - Ini terjadi jika artefak kode telah diubah sejak penandatanganan.
• Tanda tangan tidak cocok - Ini terjadi jika artefak kode ditandatangani oleh profil penandatanganan yang tidak disetujui.
• Tanda tangan kedaluwarsa - Ini terjadi jika tanda tangan melebihi tanggal berakhir yang dikonfigurasi.
• Tanda tangan yang dibatalkan - Ini terjadi jika pemilik profil penandatanganan membatalkan tugas penandatanganan.
Untuk mempelajari selengkapnya, lihat dokumentasi AWS Lambda.
-
Ya, Anda dapat mengaktifkan penandatanganan kode untuk fungsi yang ada dengan melampirkan konfigurasi penandatanganan kode ke fungsi tersebut. Anda dapat melakukannya menggunakan konsol AWS Lambda, API Lambda, AWS CLI, AWS CloudFormation, dan AWS SAM.
Tidak ada biaya tambahan saat menggunakan Penandatanganan Kode untuk AWS Lambda. Anda membayar harga standar untuk AWS Lambda. Untuk mempelajari selengkapnya, lihat Harga.
Kemampuan pemantauan lanjutan
Buka semuaUntuk memberi Anda pengalaman logging yang disederhanakan dan ditingkatkan secara default, AWS Lambda menawarkan kontrol logging lanjutan, seperti kemampuan untuk menangkap log fungsi Lambda secara native dalam format terstruktur JSON, mengontrol pemfilteran tingkat log dari log fungsi Lambda tanpa membuat perubahan kode apa pun, serta menyesuaikan grup log Amazon CloudWatch yang dikirimkan Lambda ke log.
Anda dapat menangkap log fungsi Lambda dalam format terstruktur JSON tanpa harus menggunakan pustaka logging Anda sendiri. Log terstruktur JSON memudahkan pencarian, pemfilteran, dan analisis entri log dengan volume besar. Anda dapat mengontrol pemfilteran tingkat log dari log fungsi Lambda tanpa membuat perubahan kode apa pun, yang memungkinkan Anda memilih tingkat perincian pencatatan yang diperlukan untuk fungsi Lambda tanpa menyaring log bervolume besar saat melakukan debug dan memecahkan masalah kesalahan. Anda juga dapat mengatur ke grup log Amazon CloudWatch mana Lambda mengirimkan log, sehingga memudahkan dalam mengagregasi log dari beberapa fungsi dalam aplikasi di satu tempat. Anda kemudian dapat menerapkan kebijakan keamanan, tata kelola, dan retensi ke log di tingkat aplikasi daripada secara individual untuk setiap fungsi.
Anda dapat menentukan kontrol pencatatan lanjutan untuk fungsi Lambda menggunakan API AWS Lambda, konsol AWS Lambda, AWS CLI, AWS Serverless Application Model (SAM), dan AWS CloudFormation. Untuk mempelajari selengkapnya, kunjungi postingan blog peluncuran untuk kontrol pencatatan lanjutan atau Panduan Developer Lambda.
Ya, Anda dapat menggunakan pustaka pencatatan Anda sendiri untuk menghasilkan log Lambda dalam format terstruktur JSON. Untuk memastikan pustaka pencatatan Anda bekerja secara lancar dengan kemampuan pencatatan terstruktur JSON asli Lambda, Lambda tidak akan melakukan enkode ulang setiap log yang dihasilkan oleh fungsi yang sudah dikodekan JSON. Anda juga dapat menggunakan pustaka Powertools for AWS Lambda untuk menangkap log Lambda dalam format terstruktur JSON.
Tidak ada biaya tambahan untuk penggunaan kontrol logging lanjutan di Lambda. Anda akan terus dikenai biaya untuk penyerapan dan penyimpanan log Lambda oleh Log Amazon CloudWatch. Lihat halaman harga CloudWatch untuk detail harga log.
Sinyal Aplikasi CloudWatch adalah solusi pemantauan performa aplikasi (APM) yang memungkinkan developer dan operator untuk dengan mudah memantau kesehatan dan performa aplikasi nirserver yang dibangun dengan Lambda. Sinyal Aplikasi menyediakan dasbor standar yang dibuat sebelumnya untuk metrik aplikasi penting, jejak berkorelasi, dan interaksi antara fungsi Lambda dan dependensinya, tanpa memerlukan instrumentasi manual atau perubahan kode dari developer.
CloudWatch Logs Live Tail adalah kemampuan streaming log dan analitik interaktif yang memberikan visibilitas waktu nyata ke log sehingga lebih mudah untuk mengembangkan dan memecahkan masalah fungsi Lambda. Ini memungkinkan developer untuk dengan cepat menguji dan memvalidasi kode atau perubahan konfigurasi secara waktu nyata, mempercepat siklus author-test-deploy (juga dikenal sebagai "inner dev loop") saat membangun aplikasi dengan Lambda. Pengalaman Live Tail juga memungkinkan operator dan tim DevOps untuk mendeteksi dan men-debug kegagalan dan kesalahan kritis dalam kode fungsi Lambda secara lebih efisien, yang mengurangi waktu rata-rata untuk pemulihan (MTTR) saat memecahkan masalah kesalahan fungsi Lambda.
Fungsi persistensi AWS Lambda
Buka semuaGunakan fungsi persistensi Lambda ketika Anda ingin membangun logika dalam model pemrograman Lambda yang sudah dikenal, dengan pengujian lokal, integrasi IDE, dan bahasa pemrograman pilihan Anda. Gunakan AWS Step Functions saat Anda membutuhkan desain alur kerja visual, visibilitas lintas tim, 220+ integrasi layanan native, atau infrastruktur tanpa pemeliharaan. Banyak aplikasi mendapat manfaat dari penggunaan keduanya bersama-sama.
Fungsi persistensi AWS Lambda saat ini mendukung JavaScript, TypeScript, Python, dan Java. Pelajari selengkapnya runtime yang didukung.
Untuk ketersediaan terbaru, kunjungi halaman Kapabilitas AWS berdasarkan Region.
Ya. Sementara batas waktu per invokasi tetap 15 menit, fungsi persistensi Lambda dapat menangguhkan dan melanjutkan di beberapa invokasi menggunakan kemampuan tunggu, seperti pengatur waktu, panggilan balik, dan kondisi polling. Saat Anda menginvokasi fungsi persistensi secara asinkron, batas waktu eksekusi persistensi dapat diperpanjang hingga satu tahun, yang memungkinkan kasus penggunaan, seperti alur kerja persetujuan manusia, pengingat terjadwal, dan pipeline pemrosesan multi-hari. Untuk fungsi sesuai permintaan, tidak ada biaya komputasi selama penangguhan.
Waktu tunggu eksekusi (hingga 1 tahun) mengatur berapa lama eksekusi dapat berjalan. Periode retensi (hingga 90 hari) mengatur berapa lama data historis dan checkpoint dipertahankan setelah eksekusi mencapai status terminal. Retensi tidak memengaruhi eksekusi yang sedang berjalan. Lihat Konfigurasi fungsi persistensi.
Anda dapat menyelesaikan setiap unit pekerjaan dalam satu langkah dengan percobaan ulang otomatis. Jika langkah gagal setelah mencoba lagi, kode handler Anda dapat menangkap kesalahan dan menjalankan langkah-langkah kompensasi, seperti mengembalikan pembayaran atau melepaskan reservasi. Karena setiap langkah yang diselesaikan diperiksa, termasuk kompensasi, pekerjaan yang berhasil diselesaikan tidak diulang pada percobaan ulang. Pola ini membantu Anda membangun proses multi-langkah yang andal, seperti pemenuhan pesanan atau alur kerja pembayaran, tanpa menulis logika coba ulang dan pelacakan status khusus.
Status eksekusi disimpan dalam penyimpanan status internal yang dikelola sepenuhnya. Setiap operasi checkpoint, seperti langkah atau panggilan balik, dapat menyimpan hingga 256 KB data. Batas ini berlaku untuk data yang dikembalikan dari operasi. Data yang dioperasikan dalam operasi, seperti membaca dan menulis objek S3 besar, tidak diperhitungkan terhadap batas ini. Jika operasi perlu mengembalikan hasil yang besar, Anda dapat mengonfigurasi serializer khusus di SDK untuk menurunkan payload ke Amazon S3 atau Amazon DynamoDB dan hanya meneruskan referensi melalui checkpoint.
Fungsi persistensi Lambda menggunakan kumpulan konkurensi tingkat akun yang sama dengan fungsi Lambda standar. Slot konkurensi dirilis selama menunggu sehingga ribuan eksekusi dapat menunggu tanpa mengkonsumsi konkurensi. Pelajari selengkapnya kuota AWS Lambda.
Anda dapat menguji fungsi persistensi secara lokal tanpa kredenSIAL AWS menggunakan SDK eksekusi persistensi untuk bahasa pemrograman yang didukung. AWS SAM CLI juga mendukung invokasi lokal, panggilan balik, dan manajemen eksekusi persistensi, sehingga mudah untuk dikembangkan dan di-debug sebelum digunakan. Pelajari selengkapnya menguji fungsi persistensi.