View a markdown version of this page

Memahami cara Lambda mengelola pembaruan versi runtime - AWS Lambda

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

Memahami cara Lambda mengelola pembaruan versi runtime

Lambda selalu memperbarui setiap runtime terkelola dengan pembaruan keamanan, perbaikan bug, fitur baru, peningkatan kinerja, dan dukungan untuk rilis versi minor. Pembaruan runtime ini diterbitkan sebagai versi runtime. Lambda menerapkan pembaruan runtime ke fungsi dengan memigrasikan fungsi dari versi runtime sebelumnya ke versi runtime baru.

Secara default, untuk fungsi yang menggunakan runtime terkelola, Lambda menerapkan pembaruan runtime secara otomatis. Dengan pembaruan runtime otomatis, Lambda mengambil beban operasional untuk menambal versi runtime. Bagi sebagian besar pelanggan, pembaruan otomatis adalah pilihan yang tepat. Anda dapat mengubah perilaku default ini dengan mengonfigurasi pengaturan manajemen runtime.

Lambda juga menerbitkan setiap versi runtime baru sebagai image container. Untuk memperbarui versi runtime untuk fungsi berbasis container, Anda harus membuat image kontainer baru dari image dasar yang diperbarui dan menerapkan ulang fungsi Anda.

Setiap versi runtime dikaitkan dengan nomor versi dan ARN (Nama Sumber Daya Amazon). Nomor versi runtime menggunakan skema penomoran yang didefinisikan Lambda, terlepas dari nomor versi yang digunakan bahasa pemrograman. Nomor versi runtime tidak selalu berurutan. Misalnya, versi 42 mungkin diikuti oleh versi 45. Versi runtime ARN adalah pengidentifikasi unik untuk setiap versi runtime. Anda dapat melihat ARN versi runtime fungsi Anda saat ini di konsol Lambda, atau INIT_START baris log fungsi Anda. Untuk informasi tentang mengelola pembaruan runtime di aplikasi penting kesehatan, lihatMengontrol izin pembaruan runtime Lambda untuk aplikasi kepatuhan tinggi.

Versi runtime tidak boleh disamakan dengan pengidentifikasi runtime. Setiap runtime memiliki pengenal runtime yang unik, seperti python3.14 ataunodejs24.x. Ini sesuai dengan setiap rilis bahasa pemrograman utama. Versi runtime menjelaskan versi patch dari runtime individu.

catatan

ARN untuk nomor versi runtime yang sama dapat bervariasi antara Wilayah AWS dan arsitektur CPU.

Kompatibilitas mundur

Lambda berusaha untuk menyediakan pembaruan runtime yang kompatibel ke belakang dengan fungsi yang ada. Namun, seperti halnya tambalan perangkat lunak, ada kasus yang jarang terjadi di mana pembaruan runtime dapat berdampak negatif pada fungsi yang ada. Misalnya, patch keamanan dapat mengekspos masalah mendasar dengan fungsi yang ada yang bergantung pada perilaku tidak aman sebelumnya.

Saat membangun dan menerapkan fungsi Anda, penting untuk memahami cara mengelola dependensi Anda untuk menghindari potensi ketidakcocokan dengan pembaruan runtime di masa mendatang. Misalnya, misalkan fungsi Anda memiliki ketergantungan pada paket A, yang pada gilirannya bergantung pada paket B. Kedua paket disertakan dalam runtime Lambda (misalnya, mereka bisa menjadi bagian dari SDK atau dependensinya, atau bagian dari pustaka sistem runtime).

Pertimbangkan skenario berikut:

Deployment Menambal kompatibel Alasan
  • Paket A: Gunakan dari runtime

  • Paket B: Gunakan dari runtime

Ya Pembaruan runtime masa depan untuk paket A dan B kompatibel ke belakang.
  • Paket A: Dalam paket penerapan

  • Paket B: Dalam paket penyebaran

Ya Penerapan Anda diutamakan, sehingga pembaruan runtime di masa mendatang untuk paket A dan B tidak berpengaruh.
  • Paket A: Dalam paket penerapan

  • Paket B: Gunakan dari runtime

Ya*

Pembaruan runtime masa depan untuk paket B kompatibel ke belakang.

* Jika A dan B digabungkan erat, masalah kompatibilitas dapat terjadi. Misalnya, botocore paket boto3 dan dalam AWS SDK untuk Python harus digunakan bersama.

  • Paket A: Gunakan dari runtime

  • Paket B: Dalam paket penyebaran

Tidak Pembaruan runtime masa depan untuk paket A mungkin memerlukan versi paket B yang diperbarui. Namun, versi paket B yang digunakan lebih diutamakan, dan mungkin tidak kompatibel dengan versi paket A yang diperbarui.

Untuk menjaga kompatibilitas dengan pembaruan runtime di masa mendatang, ikuti praktik terbaik berikut:

  • Jika memungkinkan, kemas semua dependensi: Ser takan semua pustaka yang diperlukan, termasuk AWS SDK dan dependensinya, dalam paket penerapan Anda. Ini memastikan rangkaian komponen yang stabil dan kompatibel.

  • Gunakan SDK yang disediakan runtime dengan hemat: Hanya mengandalkan SDK yang disediakan runtime ketika Anda tidak dapat menyertakan paket tambahan (misalnya, saat menggunakan editor kode konsol Lambda atau kode sebaris dalam template). AWS CloudFormation

  • Hindari mengganti pustaka sistem: Jangan gunakan pustaka sistem operasi khusus yang mungkin bertentangan dengan pembaruan runtime di masa mendatang.

Mode pembaruan runtime

Lambda berusaha untuk menyediakan pembaruan runtime yang kompatibel ke belakang dengan fungsi yang ada. Namun, seperti halnya tambalan perangkat lunak, ada kasus yang jarang terjadi di mana pembaruan runtime dapat berdampak negatif pada fungsi yang ada. Misalnya, patch keamanan dapat mengekspos masalah mendasar dengan fungsi yang ada yang bergantung pada perilaku tidak aman sebelumnya. Kontrol manajemen runtime lambda membantu mengurangi risiko dampak pada beban kerja Anda jika terjadi ketidakcocokan versi runtime yang jarang terjadi. Untuk setiap versi fungsi ($LATESTatau versi yang diterbitkan), Anda dapat memilih salah satu mode pembaruan runtime berikut:

  • Otomatis (default) - Secara otomatis memperbarui ke versi runtime terbaru dan aman menggunakanTwo-phase peluncuran versi runtime. Kami merekomendasikan mode ini untuk sebagian besar pelanggan sehingga Anda selalu mendapat manfaat dari pembaruan runtime.

  • Pembaruan fungsi — Perbarui ke versi runtime terbaru dan aman saat Anda memperbarui fungsi Anda. Saat Anda memperbarui fungsi Anda, Lambda memperbarui runtime fungsi Anda ke versi runtime terbaru dan aman. Pendekatan ini menyinkronkan pembaruan runtime dengan penerapan fungsi, memberi Anda kontrol atas kapan Lambda menerapkan pembaruan runtime. Dengan mode ini, Anda dapat mendeteksi dan mengurangi ketidakcocokan pembaruan runtime yang jarang terjadi sejak dini. Saat menggunakan mode ini, Anda harus memperbarui fungsi secara teratur agar runtime mereka tetap up to date.

  • Manual — Perbarui versi runtime Anda secara manual. Anda menentukan versi runtime dalam konfigurasi fungsi Anda. Fungsi ini menggunakan versi runtime ini tanpa batas waktu.

    Dalam kasus yang jarang terjadi di mana versi runtime baru tidak kompatibel dengan fungsi yang ada, Anda dapat menggunakan mode ini untuk mengembalikan fungsi Anda ke versi runtime sebelumnya. Sebaiknya jangan menggunakan mode Manual untuk mencoba mencapai konsistensi runtime di seluruh penerapan. Untuk informasi selengkapnya, lihat Mengembalikan versi runtime Lambda.

Tanggung jawab untuk menerapkan pembaruan runtime ke fungsi Anda bervariasi sesuai dengan mode pembaruan runtime yang Anda pilih. Untuk informasi selengkapnya, lihat Memahami model tanggung jawab bersama untuk manajemen runtime Lambda.

Two-phase peluncuran versi runtime

Lambda memperkenalkan versi runtime baru dalam urutan sebagai berikut:

  1. Pada fase pertama, Lambda menerapkan versi runtime baru setiap kali Anda membuat atau memperbarui fungsi. Fungsi akan diperbarui saat Anda memanggil operasi UpdateFunctionConfiguration API UpdateFunctionCode atau.

  2. Pada fase kedua, Lambda memperbarui fungsi apa pun yang menggunakan mode pembaruan runtime otomatis dan yang belum diperbarui ke versi runtime baru.

Durasi keseluruhan proses peluncuran bervariasi sesuai dengan beberapa faktor, termasuk tingkat keparahan patch keamanan apa pun yang disertakan dalam pembaruan runtime.

Jika Anda secara aktif mengembangkan dan menerapkan fungsi Anda, kemungkinan besar Anda mengambil versi runtime baru selama fase pertama. Ini menyinkronkan pembaruan runtime dengan pembaruan fungsi. Dalam kasus yang jarang terjadi bahwa versi runtime terbaru berdampak negatif pada aplikasi Anda, pendekatan ini memberi Anda kesempatan untuk mengambil tindakan korektif segera. Fungsi yang tidak dalam pengembangan aktif masih menerima manfaat operasional dari pembaruan runtime otomatis selama fase kedua.

Pendekatan ini tidak mempengaruhi fungsi yang disetel ke Pembaruan fungsi atau mode Manual. Fungsi yang menggunakan mode pembaruan fungsi menerima pembaruan runtime terbaru hanya ketika Anda membuat atau memperbaruinya. Fungsi yang menggunakan mode Manual tidak menerima pembaruan runtime.

Lambda menerbitkan versi runtime baru secara bertahap dan bergulir. Wilayah AWS Jika fungsi Anda diatur ke mode pembaruan Otomatis atau Fungsi, ada kemungkinan fungsi yang digunakan pada waktu yang sama ke Wilayah yang berbeda, atau pada waktu yang berbeda di Wilayah yang sama, mengambil versi runtime yang berbeda. Pelanggan yang membutuhkan konsistensi versi runtime terjamin di seluruh lingkungan mereka harus menggunakan image kontainer untuk menerapkan fungsi Lambda mereka. Mode Manual dirancang sebagai mitigasi sementara untuk mengaktifkan rollback versi runtime jika jarang versi runtime tidak kompatibel dengan fungsi Anda.