Pembaruan runtime Lambda - AWS Lambda

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

Pembaruan runtime Lambda

Lambda selalu memperbarui setiap runtime yang dikelola 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 menanggung beban operasional untuk menambal versi runtime. Bagi sebagian besar pelanggan, pembaruan otomatis adalah pilihan yang tepat. Untuk informasi selengkapnya, lihat Kontrol manajemen runtime.

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

Setiap versi runtime dikaitkan dengan nomor versi dan ARN (Amazon Resource Name). Nomor versi runtime menggunakan skema penomoran yang didefinisikan Lambda, terlepas dari nomor versi yang digunakan bahasa pemrograman. ARN versi runtime adalah pengidentifikasi unik untuk setiap versi runtime.

Anda dapat melihat ARN versi runtime fungsi Anda saat ini di INIT_START baris log fungsi Anda dan di konsol Lambda.

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

catatan

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

Kontrol manajemen runtime

Lambda berusaha untuk menyediakan pembaruan runtime yang kompatibel dengan fungsi yang ada. Namun, seperti halnya patching 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 menggunakanPeluncuran versi runtime dua fase. 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 memperbarui fungsi, Lambda memperbarui runtime fungsi Anda ke versi runtime terbaru dan aman. Pendekatan ini menyinkronkan pembaruan runtime dengan penerapan fungsi, memberi Anda kendali atas kapan Lambda menerapkan pembaruan runtime. Dengan mode ini, Anda dapat mendeteksi dan mengurangi ketidakcocokan pembaruan runtime yang jarang terjadi lebih awal. Saat menggunakan mode ini, Anda harus memperbarui fungsi secara teratur agar runtime 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 memutar kembali fungsi Anda ke versi runtime sebelumnya. Sebaiknya jangan menggunakan mode Manual untuk mencoba mencapai konsistensi runtime di seluruh penerapan. Untuk informasi selengkapnya, lihat Kembalikan versi runtime.

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

Peluncuran versi runtime dua fase

Lambda memperkenalkan versi runtime baru dengan urutan sebagai berikut:

  1. Pada fase pertama, Lambda menerapkan versi runtime baru setiap kali Anda membuat atau memperbarui fungsi. Sebuah fungsi akan diperbarui saat Anda memanggil operasi UpdateFunctionCodeatau UpdateFunctionConfigurationAPI.

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

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

Jika Anda secara aktif mengembangkan dan menerapkan fungsi Anda, kemungkinan besar Anda akan mengambil versi runtime baru selama fase pertama. Ini menyinkronkan pembaruan runtime dengan pembaruan fungsi. Jika versi runtime terbaru berdampak negatif pada aplikasi Anda, pendekatan ini memungkinkan Anda mengambil tindakan korektif yang cepat. Fungsi yang tidak dalam pengembangan aktif masih menerima manfaat operasional dari pembaruan runtime otomatis selama fase kedua.

Pendekatan ini tidak memengaruhi 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 disetel ke mode pembaruan Otomatis atau Fungsi, kemungkinan fungsi yang diterapkan secara bersamaan ke Wilayah yang berbeda, atau pada waktu yang berbeda di Wilayah yang sama, akan mengambil versi runtime yang berbeda. Pelanggan yang memerlukan konsistensi versi runtime yang dijamin di seluruh lingkungan mereka harus menggunakan gambar kontainer untuk menerapkan fungsi Lambda mereka. Mode Manual dirancang sebagai mitigasi sementara untuk mengaktifkan rollback versi runtime jika versi runtime tidak kompatibel dengan fungsi Anda.

Kembalikan versi runtime

Jika versi runtime baru tidak kompatibel dengan fungsi yang ada, Anda dapat memutar kembali versi runtime-nya ke versi sebelumnya. Ini membuat aplikasi Anda tetap berfungsi dan meminimalkan gangguan, memberikan waktu untuk memperbaiki ketidakcocokan sebelum kembali ke versi runtime terbaru.

Lambda tidak memaksakan batas waktu berapa lama Anda dapat menggunakan versi runtime tertentu. Namun, kami sangat menyarankan untuk memperbarui ke versi runtime terbaru sesegera mungkin untuk mendapatkan manfaat dari patch keamanan terbaru, peningkatan kinerja, dan fitur. Lambda menyediakan opsi untuk memutar kembali ke versi runtime sebelumnya hanya sebagai mitigasi sementara jika terjadi masalah kompatibilitas pembaruan runtime yang jarang terjadi. Fungsi yang menggunakan versi runtime sebelumnya untuk jangka waktu yang lama pada akhirnya dapat mengalami penurunan kinerja atau masalah, seperti kedaluwarsa sertifikat, yang dapat menyebabkan mereka berhenti bekerja dengan benar.

Anda dapat memutar kembali versi runtime dengan cara berikut:

Untuk informasi selengkapnya, lihat Memperkenalkan kontrol manajemen AWS Lambda runtime di Blog AWS Compute.

Kembalikan versi runtime menggunakan mode pembaruan runtime Manual

Jika Anda menggunakan mode pembaruan versi runtime otomatis, atau menggunakan versi $LATEST runtime, Anda dapat memutar kembali versi runtime menggunakan mode Manual. Untuk versi fungsi yang ingin Anda putar kembali, ubah mode pembaruan versi runtime ke Manual dan tentukan ARN dari versi runtime sebelumnya. Untuk informasi selengkapnya tentang menemukan ARN dari versi runtime sebelumnya, lihat. Mengidentifikasi perubahan versi runtime

catatan

Jika $LATEST versi fungsi Anda dikonfigurasi untuk menggunakan mode Manual, maka Anda tidak dapat mengubah arsitektur CPU atau versi runtime yang digunakan fungsi Anda. Untuk membuat perubahan ini, Anda harus mengubah ke mode pembaruan Otomatis atau Fungsi.

Kembalikan versi runtime menggunakan versi fungsi yang diterbitkan

Versi fungsi yang diterbitkan adalah snapshot yang tidak dapat diubah dari kode $LATEST fungsi dan konfigurasi pada saat Anda membuatnya. Dalam mode Otomatis, Lambda secara otomatis memperbarui versi runtime dari versi fungsi yang diterbitkan selama fase dua peluncuran versi runtime. Dalam mode pembaruan Fungsi, Lambda tidak memperbarui versi runtime dari versi fungsi yang diterbitkan.

Versi fungsi yang diterbitkan menggunakan mode pembaruan Fungsi karenanya membuat snapshot statis dari kode fungsi, konfigurasi, dan versi runtime. Dengan menggunakan mode pembaruan Fungsi dengan versi fungsi, Anda dapat menyinkronkan pembaruan runtime dengan penerapan Anda. Anda juga dapat mengoordinasikan rollback versi kode, konfigurasi, dan runtime dengan mengarahkan lalu lintas ke versi fungsi yang diterbitkan sebelumnya. Anda dapat mengintegrasikan pendekatan ini ke dalam integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) untuk rollback otomatis sepenuhnya jika terjadi ketidakcocokan pembaruan runtime yang jarang terjadi. Saat menggunakan pendekatan ini, Anda harus memperbarui fungsi Anda secara teratur dan menerbitkan versi fungsi baru untuk mengambil pembaruan runtime terbaru. Untuk informasi selengkapnya, lihat Model tanggung jawab bersama.

Mengidentifikasi perubahan versi runtime

Nomor versi runtime dan ARN dicatat di INIT_START baris log, yang dipancarkan Lambda CloudWatch ke Log setiap kali menciptakan lingkungan eksekusi baru. Karena lingkungan eksekusi menggunakan versi runtime yang sama untuk semua pemanggilan fungsi, Lambda memancarkan INIT_START baris log hanya ketika Lambda mengeksekusi fase init. Lambda tidak memancarkan baris log ini untuk setiap pemanggilan fungsi. Lambda memancarkan baris log ke CloudWatch Log, tetapi tidak terlihat di konsol.

contoh Contoh baris log INIT_START
INIT_START Runtime Version: python:3.9.v14    Runtime Version ARN: arn:aws:lambda:eu-south-1::runtime:7b620fc2e66107a1046b140b9d320295811af3ad5d4c6a011fad1fa65127e9e6I

Daripada bekerja secara langsung dengan log, Anda dapat menggunakan Amazon CloudWatch Contributor Insights untuk mengidentifikasi transisi antar versi runtime. Aturan berikut menghitung versi runtime yang berbeda dari setiap baris INIT_START log. Untuk menggunakan aturan, ganti contoh nama grup log /aws/lambda/* dengan awalan yang sesuai untuk fungsi atau grup fungsi Anda.

{ "Schema": { "Name": "CloudWatchLogRule", "Version": 1 }, "AggregateOn": "Count", "Contribution": { "Filters": [ { "Match": "eventType", "In": [ "INIT_START" ] } ], "Keys": [ "runtimeVersion", "runtimeVersionArn" ] }, "LogFormat": "CLF", "LogGroupNames": [ "/aws/lambda/*" ], "Fields": { "1": "eventType", "4": "runtimeVersion", "8": "runtimeVersionArn" } }

Laporan CloudWatch Contributor Insights berikut menunjukkan contoh transisi versi runtime seperti yang ditangkap oleh aturan sebelumnya. Baris oranye menunjukkan inisialisasi lingkungan eksekusi untuk versi runtime sebelumnya (python:3.9.v12), dan garis biru menunjukkan inisialisasi lingkungan eksekusi untuk versi runtime baru (python: 3.9.v14).

Grafik yang menunjukkan transisi dari satu versi runtime ke versi lainnya.

Konfigurasikan pengaturan manajemen runtime

Anda dapat mengonfigurasi pengaturan manajemen runtime menggunakan konsol Lambda atau ()AWS Command Line Interface. AWS CLI

catatan

Anda dapat mengonfigurasi pengaturan manajemen runtime secara terpisah untuk setiap versi fungsi.

Untuk mengonfigurasi cara Lambda memperbarui versi runtime Anda (konsol)
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih nama sebuah fungsi.

  3. Pada tab Kode, di bawah pengaturan Runtime, pilih Edit konfigurasi manajemen runtime.

  4. Di bawah Konfigurasi manajemen runtime, pilih salah satu dari berikut ini:

    • Agar fungsi Anda diperbarui ke versi runtime terbaru secara otomatis, pilih Otomatis.

    • Agar fungsi Anda diperbarui ke versi runtime terbaru saat Anda mengubah fungsi, pilih Pembaruan fungsi.

    • Agar fungsi Anda diperbarui ke versi runtime terbaru hanya ketika Anda mengubah ARN versi runtime, pilih Manual.

      catatan

      Anda dapat menemukan ARN versi runtime di bawah konfigurasi manajemen Runtime. Anda juga dapat menemukan ARN di INIT_START baris log fungsi Anda.

  5. Pilih Simpan.

Untuk mengonfigurasi cara Lambda memperbarui versi runtime Anda () AWS CLI

Untuk mengonfigurasi manajemen runtime untuk suatu fungsi, Anda dapat menggunakan put-runtime-management-configAWS CLIperintah, bersama dengan mode pembaruan runtime. Saat menggunakan Manual mode, Anda juga harus menyediakan ARN versi runtime.

aws lambda put-runtime-management-config --function-name arn:aws:lambda:eu-west-1:069549076217:function:myfunction --update-runtime-on Manual --runtime-version-arn arn:aws:lambda:eu-west-1::runtime:8eeff65f6809a3ce81507fe733fe09b835899b99481ba22fd75b5a7338290ec1

Anda akan melihat output yang serupa dengan yang berikut:

{ "UpdateRuntimeOn": "Manual", "FunctionArn": "arn:aws:lambda:eu-west-1:069549076217:function:myfunction", "RuntimeVersionArn": "arn:aws:lambda:eu-west-1::runtime:8eeff65f6809a3ce81507fe733fe09b835899b99481ba22fd75b5a7338290ec1" }

Model tanggung jawab bersama

Lambda bertanggung jawab untuk mengkurasi dan menerbitkan pembaruan keamanan untuk semua runtime terkelola dan gambar kontainer yang didukung. Tanggung jawab untuk memperbarui fungsi yang ada untuk menggunakan versi runtime terbaru bervariasi tergantung pada mode pembaruan runtime yang Anda gunakan.

Lambda bertanggung jawab untuk menerapkan pembaruan runtime ke semua fungsi yang dikonfigurasi untuk menggunakan mode Pembaruan runtime Otomatis.

Untuk fungsi yang dikonfigurasi dengan mode pembaruan runtime pembaruan Fungsi, Anda bertanggung jawab untuk memperbarui fungsi secara teratur. Lambda bertanggung jawab untuk menerapkan pembaruan runtime saat Anda melakukan pembaruan tersebut. Jika Anda tidak memperbarui fungsi Anda, maka Lambda tidak memperbarui runtime. Jika Anda tidak memperbarui fungsi Anda secara teratur, maka kami sangat menyarankan untuk mengonfigurasinya untuk pembaruan runtime otomatis sehingga terus menerima pembaruan keamanan.

Untuk fungsi yang dikonfigurasi untuk menggunakan mode pembaruan runtime Manual, Anda bertanggung jawab untuk memperbarui fungsi agar menggunakan versi runtime terbaru. Kami sangat menyarankan Anda menggunakan mode ini hanya untuk memutar kembali versi runtime sebagai mitigasi sementara jika terjadi ketidakcocokan pembaruan runtime yang jarang terjadi. Kami juga menyarankan agar Anda mengubah ke mode Otomatis secepat mungkin untuk meminimalkan waktu di mana fungsi Anda tidak ditambal.

Jika Anda menggunakan gambar kontainer untuk menerapkan fungsi Anda, Lambda bertanggung jawab untuk menerbitkan gambar dasar yang diperbarui. Dalam hal ini, Anda bertanggung jawab untuk membangun kembali image container fungsi Anda dari image dasar terbaru dan menerapkan kembali image container.

Ini dirangkum dalam tabel berikut:

Mode deployment Tanggung jawab Lambda Tanggung jawab pelanggan
Runtime terkelola, mode Otomatis

Publikasikan versi runtime baru yang berisi tambalan terbaru.

Terapkan patch runtime ke fungsi yang ada.

Kembalikan ke versi runtime sebelumnya jika terjadi masalah kompatibilitas pembaruan runtime yang jarang terjadi.
Runtime terkelola, Mode pembaruan Fungsi Publikasikan versi runtime baru yang berisi tambalan terbaru.

Perbarui fungsi secara teratur untuk mengambil versi runtime terbaru.

Ganti fungsi ke mode Otomatis saat Anda tidak memperbarui fungsi secara teratur.

Kembalikan ke versi runtime sebelumnya jika terjadi masalah kompatibilitas pembaruan runtime yang jarang terjadi.

Runtime terkelola, mode Manual Publikasikan versi runtime baru yang berisi tambalan terbaru.

Gunakan mode ini hanya untuk rollback runtime sementara jika terjadi masalah kompatibilitas pembaruan runtime yang jarang terjadi.

Ganti fungsi ke mode pembaruan Otomatis atau Fungsi dan versi runtime terbaru sesegera mungkin.

Gambar kontainer Publikasikan gambar kontainer baru yang berisi tambalan terbaru. Menerapkan ulang fungsi secara teratur menggunakan gambar dasar kontainer terbaru untuk mengambil tambalan terbaru.

Untuk informasi selengkapnya tentang tanggung jawab bersamaAWS, lihat Model Tanggung Jawab Bersama di situs AWS Cloud Keamanan.

Aplikasi kepatuhan tinggi

Untuk memenuhi persyaratan penambalan, pelanggan Lambda biasanya mengandalkan pembaruan runtime otomatis. Jika aplikasi Anda tunduk pada persyaratan kesegaran penambalan yang ketat, Anda mungkin ingin membatasi penggunaan versi runtime sebelumnya. Anda dapat membatasi kontrol manajemen runtime Lambda dengan menggunakan AWS Identity and Access Management (IAM) untuk menolak pengguna di akses AWS akun Anda ke operasi API. PutRuntimeManagementConfig Operasi ini digunakan untuk memilih mode pembaruan runtime untuk suatu fungsi. Menolak akses ke operasi ini menyebabkan semua fungsi default ke mode Otomatis. Anda dapat menerapkan pembatasan ini di seluruh organisasi Anda dengan menggunakan kebijakan kontrol layanan (SCP). Jika Anda harus memutar kembali fungsi ke versi runtime yang lebih lama, Anda dapat memberikan pengecualian kebijakan case-by-case berdasarkan.