View a markdown version of this page

Mengelola revisi Fungsi Web - AWS Lambda

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

Mengelola revisi Fungsi Web

Revisi adalah snapshot yang tidak dapat diubah dari kode dan konfigurasi aplikasi Web Function Anda. Untuk mengubah kode Anda atau pengaturan revisi apa pun, sepertitimeoutSeconds,maxConcurrencyPerEnvironment, atauenvironmentVariables, Anda membuat revisi baru. Apakah revisi baru menerima lalu lintas tergantung pada mode penyebaran otomatis setiap titik akhir. Titik akhir dalam LatestRevisionmode merutekan semua lalu lintas ke revisi baru setelah menjadi Aktif. Titik akhir dalam mode Dinonaktifkan mempertahankan bobot revisi saat ini hingga Anda mengubahnya. Karena revisi tidak dapat diubah, Anda dapat memutar kembali dengan merutekan lalu lintas ke revisi sebelumnya. Revisi sebelumnya harus tetap Aktif, dan kode, kunci, peran, dan dependensi lainnya harus tetap tersedia. Untuk informasi tentang perutean lalu lintas antar revisi, lihat. Pola deployment

Properti revisi

Setiap revisi berisi konfigurasi berikut:

Properti Deskripsi Default Dapat diubah
RevisionID ID unik yang dihasilkan Lambda saat Anda membuat revisi. – Tidak (dihasilkan)
RevisionARN Nama Sumber Daya Amazon (ARN) dari revisi. – Tidak (dihasilkan)
FungsiARN ARN dari Fungsi Web yang dimiliki revisi. – Tidak (dihasilkan)
negara Status siklus hidup revisi (Pending,Active, atau). Failed Lihat perinciannya di Status revisi. – Tidak (dikelola oleh Lambda)
StateReason Deskripsi mengapa revisi dalam keadaan saat ini, misalnya penyebab suatu Failed negara. – Tidak (dikelola oleh Lambda)
kesalahan Daftar kesalahan yang ditemukan Lambda saat membuat atau membaca revisi. Setiap kesalahan memberi nama atribut yang terpengaruh dan menyertakan kode kesalahan dan pesan. Absen ketika revisi tidak memiliki kesalahan. – Tidak (dikelola oleh Lambda)
createDat Stempel waktu saat revisi dibuat. – Tidak (dihasilkan)
deskripsi Deskripsi opsional untuk revisi yang Anda berikan saat Anda membuatnya. Tidak ada Tidak (tidak dapat diubah)
BuildConfig Kode dan runtime untuk revisi. Berisi codeConfig dan runtimeConfig pengaturan yang dijelaskan dalam baris berikut. – Tidak (tidak dapat diubah)
CodeConfig Lokasi paket penyebaran. Berisi s3Object pengaturan yang dijelaskan dalam baris berikut. Bagian daribuildConfig. – Tidak (tidak dapat diubah)
Objek S3 Lokasi Amazon S3 dari paket penyebaran. Berisibucket,key, dan versionId pengaturan yang dijelaskan dalam baris berikut. Lihat perinciannya di Menyebarkan kode Fungsi Web dari Amazon S3. Bagian daricodeConfig. – Tidak (tidak dapat diubah)
bucket Nama bucket Amazon S3 yang berisi paket penerapan. Bucket harus mengaktifkan versi S3. Bagian daris3Object. – Tidak (tidak dapat diubah)
kunci Kunci objek Amazon S3 dari paket penerapan. Bagian daris3Object. – Tidak (tidak dapat diubah)
VersionID ID versi objek Amazon S3. Tidak wajib. Jika Anda menghilangkannya, Lambda menggunakan versi terbaru dari objek pada waktu pembuatan. Either way, Lambda menyematkan revisi ke versi objek tertentu. Bagian daris3Object. Versi terbaru Tidak (tidak dapat diubah)
RuntimeConfig Konfigurasi runtime. Berisi runtime pengaturan yang dijelaskan di baris berikut. Bagian daribuildConfig. – Tidak (tidak dapat diubah)
runtime Pengidentifikasi runtime (misalnya,nodejs24.x). Untuk runtime yang didukung, lihatRuntime Fungsi Web Lambda. Meskipun pengidentifikasi runtime diperbaiki untuk revisi, runtime itu sendiri tidak dibekukan. Lambda secara otomatis menerapkan patch keamanan dan perbaikan bug ke runtime, sehingga pengenal (misalnya,nodejs24.x) selalu menyelesaikan ke versi patch terbaru. Lihat perinciannya di Penambalan runtime otomatis. Bagian dariruntimeConfig. – Tidak (tidak dapat diubah)
ServiceConfig Pengaturan runtime untuk revisi. BerisiexecutionRoleArn,timeoutSeconds,maxConcurrencyPerEnvironment,environmentVariables, dan telemetryConfig pengaturan yang dijelaskan dalam baris berikut. – Tidak (tidak dapat diubah)
eksekusi RoleArn ARN dari peran IAM yang diasumsikan oleh Fungsi Web saat runtime. Peran tersebut memberikan izin untuk mengakses AWS layanan dan sumber daya. Wajib. Lihat perinciannya di Peran eksekusi. Bagian dariserviceConfig. – Tidak (tidak dapat diubah)
TimeoutSeconds Waktu maksimum dalam hitungan detik yang dapat dijalankan oleh satu permintaan HTTP. Nilai yang valid: 3—900. Bagian dariserviceConfig. 30 Tidak (tidak dapat diubah)
maks ConcurrencyPerEnvironment Jumlah maksimum permintaan HTTP bersamaan per lingkungan eksekusi. Nilai yang valid: 1—128. Bagian dariserviceConfig. 64 Tidak (tidak dapat diubah)
Variabel LingkunganVariabel Key-value pasangan tersedia untuk aplikasi Anda saat runtime. Tetapkan per-revisi dan abadi setelah pembuatan. Bagian dariserviceConfig. Tidak ada Tidak (tidak dapat diubah)
TelemetryConfig Pengaturan telemetri untuk revisi. Berisi loggingConfig pengaturan yang dijelaskan dalam baris berikut. Jika Anda menghilangkantelemetryConfig, Lambda masih mengirimkan log aplikasi Anda ke grup log default. Bagian dariserviceConfig. Tidak ada Tidak (tidak dapat diubah)
LoggingConfig Konfigurasi logging untuk revisi. BerisilogGroup,applicationLogLevel, dan systemLogLevel pengaturan yang dijelaskan dalam baris berikut. Lihat perinciannya di Kontrol logging. Bagian daritelemetryConfig. Tidak ada Tidak (tidak dapat diubah)
LogGroup Grup CloudWatch log Amazon Logs yang menerima log Anda. Nama grup log yang dimulai dengan aws/ dicadangkan dan ditolak. Lihat perinciannya di Menggunakan grup log kustom. Bagian dariloggingConfig. /aws/lambda/web/function-name Tidak (tidak dapat diubah)
aplikasi LogLevel Tingkat keparahan minimum log aplikasi Anda yang dikirim Lambda ke Amazon CloudWatch Logs. Nilai yang valid:TRACE,DEBUG,INFO,WARN,ERROR, danFATAL. Bagian dariloggingConfig. INFO Tidak (tidak dapat diubah)
sistem LogLevel Tingkat keparahan minimum log Lambda-generated sistem yang dikirim Lambda ke Amazon CloudWatch Logs. Nilai-nilai yang valid: DEBUG, INFO, dan WARN. Bagian dariloggingConfig. INFO Tidak (tidak dapat diubah)
km KeyArn ARN dari kunci yang dikelola pelanggan digunakan untuk mengenkripsi kode dan variabel lingkungan. Tidak wajib. Jika suatu MultiRegion atau PerRegion titik akhir merutekan lalu lintas ke revisi, gunakan kunci Multi-region dengan replika di setiap Wilayah titik akhir. Lihat perinciannya di Enkripsi saat istirahat untuk Fungsi Web. Tidak ada Tidak (tidak dapat diubah)

Semua properti revisi tidak dapat diubah setelah pembuatan. Untuk mengubah konfigurasi apa pun, buat revisi baru dengan nilai yang diperbarui.

Membuat revisi

Lambda membuat revisi saat Anda menelepon. CreateWebFunctionRevision Anda memberikan lokasi kode dan konfigurasi dalam permintaan. Revisi baru tidak menyalin pengaturan dari revisi yang ada. Tentukan setiap pengaturan yang ingin Anda pertahankan, termasuk variabel lingkungan. Pengaturan yang Anda hilangkan menggunakan defaultnya. Untuk memulai dari nilai saat ini, jalankan get-web-function-revision dan gunakan kembali buildConfig dan serviceConfig dengan perubahan Anda. Revisi baru dimulai dalam status Pending sementara Lambda mengunduh kode Anda dan menyiapkan artefak kode darinya. Ketika persiapan selesai, revisi beralih ke Aktif. Jika terjadi kesalahan selama persiapan, revisi bertransisi ke Gagal dan tidak dapat melayani lalu lintas. Untuk detail tentang setiap negara bagian, lihatStatus revisi.

Sebelum membuat revisi, unggah paket deployment .zip Anda ke bucket Amazon S3 berversi, dan dapatkan ARN dari peran eksekusi yang dapat diasumsikan oleh Lambda. Untuk detailnya, lihat Menyebarkan kode Fungsi Web dari Amazon S3 dan Peran eksekusi.

Untuk membuat revisi dengan kode yang diperbarui (AWS CLI)
  1. Jalankan perintah berikut untuk membuat revisi baru. Ganti bucket S3, key, role ARN, dan nilai konfigurasi dengan milik Anda sendiri.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role" }'

    Perintah menggunakan objek berikut. Untuk setiap pengaturan dan defaultnya, lihatProperti revisi.

    • buildConfigberisicodeConfig, bucket Amazon S3 dan kunci paket penerapan Anda, danruntimeConfig, runtime (misalnya,). nodejs24.x Keduanya diperlukan.

    • serviceConfigberisi ARN executionRoleArn yang diperlukan dari peran eksekusi yang diasumsikan oleh Fungsi Web Anda saat dijalankan. Itu juga bisa berisitimeoutSeconds,maxConcurrencyPerEnvironment,environmentVariables, dantelemetryConfig.

    Perintah mengembalikan rincian tentang revisi baru, termasuk. revisionId Revisi dimulai dalam status Tertunda.

  2. Untuk mengonfirmasi bahwa revisi Aktif, jalankan perintah berikut. Ganti my-web-app dengan nama fungsi Anda dan rev-a1b2c dengan revisionId dari respons.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    Revisi sudah siap kapanstate. Active Jika state yaFailed, stateReason jelaskan penyebabnya. Lihat perinciannya di Status revisi.

    Tepat setelah Anda membuat revisi, state biasanyaPending. Untuk menunggu sampai selesaiActive, jalankan aws lambda-web wait web-function-revision-active dengan opsi yang sama.

Untuk membuat revisi dengan konfigurasi yang diperbarui (AWS CLI)
  1. Untuk mengubah konfigurasi tanpa mengubah kode, tentukan lokasi kode yang sama dengan pengaturan baru. Contoh berikut mengubah batas waktu menjadi 60 detik dan menambahkan variabel lingkungan.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "timeoutSeconds": 60, "maxConcurrencyPerEnvironment": 32, "environmentVariables": { "DATABASE_URL": "my-database-endpoint", "LOG_LEVEL": "info" } }'
  2. Untuk mengonfirmasi bahwa revisi Aktif, jalankan perintah berikut. Ganti my-web-app dengan nama fungsi Anda dan rev-a1b2c dengan revisionId dari respons.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    Revisi sudah siap kapanstate. Active Jika state yaFailed, stateReason jelaskan penyebabnya. Lihat perinciannya di Status revisi.

    Tepat setelah Anda membuat revisi, state biasanyaPending. Untuk menunggu sampai selesaiActive, jalankan aws lambda-web wait web-function-revision-active dengan opsi yang sama.

Setelah membuat revisi, bagaimana lalu lintas mencapainya tergantung pada mode penyebaran otomatis titik akhir. Lihat perinciannya di Pola deployment.

Revisi daftar

Untuk melihat semua revisi untuk Fungsi Web, gunakan perintah berikut:

aws lambda-web list-web-function-revisions \ --function-name my-web-app

Responsnya mencakup pengidentifikasi, status, stempel waktu pembuatan, dan ringkasan konfigurasi setiap revisi. Gunakan pengenal revisi saat memperbarui bobot revisi titik akhir atau saat menghapus revisi.

Menghapus revisi

Anda dapat menghapus revisi yang tidak lagi diperlukan. Menghapus revisi secara permanen menghapusnya. Paket penerapan Anda di Amazon S3 tidak terpengaruh.

penting

Anda tidak dapat menghapus revisi yang mengarahkan lalu lintas titik akhir mana pun (revisi dengan bobot bukan nol pada titik akhir apa pun). Hapus revisi dari bobot revisi setiap titik akhir sebelum menghapusnya.

Untuk menghapus revisi (AWS CLI)
  • Jalankan perintah berikut untuk menghapus revisi tertentu.

    aws lambda-web delete-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

Batas revisi dan pembersihan otomatis

Lambda menggunakan 50 revisi per Fungsi Web sebagai target pembersihan otomatisnya. Targetnya tidak bisa disesuaikan. Di konsol Service Quotas, muncul sebagai Revisi per Fungsi Web (). web-function-revisions-per-function

Anda tidak perlu menghapus revisi lama untuk tetap berada dalam target pembersihan. Ketika revisi baru menjadi Aktif dan jumlah revisi total melebihi target pembersihan, Lambda secara otomatis menghapus revisi tertua yang tidak digunakan. Revisi sedang digunakan ketika titik akhir merutekan lalu lintas ke sana, termasuk ketika direferensikan di mana saja di regionalEndpoints properti titik akhir atau titik akhir. MultiRegion PerRegion Lambda tidak secara otomatis menghapus revisi yang sedang digunakan atau revisi yang baru saja menjadi Aktif. Pembersihan tidak sinkron. Jumlah revisi mungkin untuk sementara melebihi 50 sementara revisi yang lebih lama masih digunakan atau pembersihan sedang berlangsung. Revisi yang Anda hapus dari semua bobot revisi, seperti target rollback, dapat dihapus dengan pembersihan.

Anda juga dapat menghapus revisi secara manual kapan saja. Untuk prosedurnya, lihat bagian sebelumnya.

Paket penyebaran setiap revisi dapat mencapai 512 MB (unzip). Karena Anda menyediakan paket deployment di bucket Amazon S3 Anda sendiri dan Lambda mereferensikan kode Anda langsung dari bucket, tidak ada kuota penyimpanan kode terpisah untuk Fungsi Web. Lihat perinciannya di Menyebarkan kode Fungsi Web dari Amazon S3.

Mengkonfigurasi pengaturan revisi

Semua konfigurasi diatur per revisi dan tidak dapat diubah setelah pembuatan. Untuk mengubah pengaturan apa pun, buat revisi baru dengan nilai yang diperbarui. Pengaturan berikut mengontrol perilaku eksekusi.

Untuk pengaturan batas waktu permintaan dan variabel lingkungan, lihat Batas waktu permintaan dan Variabel lingkungan masukMengkonfigurasi Fungsi Web Lambda.

Konkurensi per lingkungan

maxConcurrencyPerEnvironmentPengaturan mengontrol berapa banyak permintaan HTTP yang ditangani oleh lingkungan eksekusi tunggal pada saat yang bersamaan. Nilai yang valid adalah 1-128. Defaultnya adalah 64.

Untuk I/O-bound aplikasi (banyak permintaan menunggu database atau panggilan jaringan), nilai yang lebih tinggi memaksimalkan pemanfaatan. Untuk CPU-bound aplikasi, nilai yang lebih rendah mengurangi pertengkaran. Untuk panduan lebih lanjut, lihatPerilaku penskalaan untuk Fungsi Web Lambda.