Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat menggunakan alias tertimbang untuk membagi lalu lintas antara dua versi berbeda dari fungsi yang sama. Dengan pendekatan ini, Anda dapat menguji versi baru dari fungsi Anda dengan persentase lalu lintas yang kecil dan dengan cepat memutar kembali jika perlu. Ini dikenal sebagai penyebaran kenari. Penerapan Canary berbeda dari penerapan biru/hijau dengan mengekspos versi baru hanya pada sebagian permintaan daripada mengalihkan semua lalu lintas sekaligus.
Anda dapat mengarahkan alias ke maksimal dua versi fungsi Lambda. Versi harus memenuhi kriteria berikut:
-
Kedua versi harus memiliki peran eksekusi sama.
-
Kedua versi harus memiliki konfigurasi antrean surat mati sama, atau tidak ada konfigurasi antrean surat mati.
-
Kedua versi tersebut harus dipublikasikan. Alias tidak dapat menunjuk ke
$LATEST
.
catatan
Lambda menggunakan model probabilistik sederhana untuk mendistribusikan lalu lintas di antara dua versi fungsi. Pada tingkat lalu lintas rendah, Anda mungkin melihat varians tinggi di antara persentase lalu lintas yang dikonfigurasi dan aktual di setiap versi. Jika fungsi Anda menggunakan konkurensi terprovisi, Anda dapat menghindari invokasi limpahan dengan mengonfigurasi jumlah yang lebih tinggi dari instans konkurensi terprovisi selama perutean alias aktif.
Buat alias tertimbang
Untuk mengonfigurasi perutean pada alias menggunakan konsol
catatan
Verifikasi bahwa fungsi memiliki setidaknya dua versi yang dipublikasikan. Untuk membuat versi tambahan, ikuti petunjuk dalam Membuat versi fungsi.
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi.
-
Pilih Alias, lalu pilih Buat alias.
-
Di halaman Buat alias, lakukan hal berikut:
-
Masukkan Nama untuk alias.
-
(Opsional) Masukkan Deskripsi untuk alias.
-
Untuk Versi, pilih versi fungsi pertama yang ingin Anda tunjuk.
-
Perluas Alias tertimbang.
-
Untuk Versi tambahan, pilih versi fungsi kedua yang ingin Anda tunjuk.
-
Untuk Bobot (%), masukkan nilai bobot untuk fungsi. Bobot adalah persentase lalu lintas yang ditetapkan untuk versi tersebut ketika alias dipanggil. Versi pertama menerima bobot residual. Misalnya, jika Anda menentukan 10 persen ke Versi tambahan, versi pertama ditetapkan ke 90 persen secara otomatis.
-
Pilih Simpan.
-
Menentukan versi mana yang dipanggil
Saat Anda mengonfigurasi bobot lalu lintas di antara dua versi fungsi, ada dua cara untuk menentukan versi fungsi Lambda yang sudah dipanggil:
-
CloudWatch Log — Lambda secara otomatis memancarkan entri
START
log yang berisi ID versi yang dipanggil untuk setiap pemanggilan fungsi. Contoh:START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version:
2
Untuk invokasi alias, Lambda menggunakan dimensi
ExecutedVersion
untuk memfilter data metrik dengan versi yang dipanggil. Untuk informasi selengkapnya, lihat Melihat metrik untuk fungsi Lambda. -
Muatan respons (invokasi tersinkron) – Respons untuk invokasi fungsi tersinkron yang mencakup header
x-amz-executed-version
untuk menunjukkan versi fungsi mana yang telah dipanggil.
Buat penerapan bergulir dengan alias tertimbang
Use AWS CodeDeploy and AWS Serverless Application Model (AWS SAM) untuk membuat penerapan bergulir yang secara otomatis mendeteksi perubahan pada kode fungsi Anda, menerapkan versi baru fungsi Anda, dan secara bertahap meningkatkan jumlah lalu lintas yang mengalir ke versi baru. Jumlah lalu lintas dan tingkat peningkatan adalah parameter yang dapat Anda konfigurasi.
Dalam penerapan bergulir, AWS SAM lakukan tugas-tugas ini:
-
Mengkonfigurasi fungsi Lambda Anda dan membuat alias. Konfigurasi routing alias tertimbang adalah kemampuan dasar yang mengimplementasikan penerapan bergulir.
-
Membuat grup CodeDeploy aplikasi dan penyebaran. Grup penyebaran mengelola penerapan bergulir dan rollback, jika diperlukan.
-
Mendeteksi saat Anda membuat versi baru fungsi Lambda Anda.
-
Pemicu CodeDeploy untuk memulai penyebaran versi baru.
Contoh AWS SAM template
Contoh berikut menunjukkan templat AWS SAM untuk deployment bergulir sederhana.
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A sample SAM template for deploying Lambda functions
Resources:
# Details about the myDateTimeFunction Lambda function
myDateTimeFunction:
Type: AWS::Serverless::Function
Properties:
Handler: myDateTimeFunction.handler
Runtime: nodejs18.x
# Creates an alias named "live" for the function, and automatically publishes when you update the function.
AutoPublishAlias: live
DeploymentPreference:
# Specifies the deployment configuration
Type: Linear10PercentEvery2Minutes
Templat ini menentukan fungsi Lambda bernama myDateTimeFunction
dengan properti berikut.
- AutoPublishAlias
-
Properti
AutoPublishAlias
membuat alias bernamalive
. Selain itu, kerangka kerja AWS SAM secara otomatis mendeteksi saat Anda menyimpan kode baru untuk fungsi tersebut. Kerangka kerja kemudian menerbitkan versi fungsi baru dan memperbarui aliaslive
untuk mengarah ke versi baru. - DeploymentPreference
-
DeploymentPreference
Properti menentukan tingkat di mana CodeDeploy aplikasi menggeser lalu lintas dari versi asli fungsi Lambda ke versi baru. NilaiLinear10PercentEvery2Minutes
menggeser sepuluh persen tambahan lalu lintas ke versi baru setiap dua menit.Untuk daftar konfigurasi deployment yang ditetapkan sebelumnya, lihat Konfigurasi deployment.
Untuk informasi selengkapnya tentang cara membuat penerapan bergulir dengan CodeDeploy dan AWS SAM, lihat berikut ini: