Anda dapat memublikasikan satu atau beberapa versi untuk suatu layanan. Versi merupakan Snapshot dari layanan tersebut. Saat Anda memublikasikan versi, Function Compute membuat Snapshot dan memberinya nomor versi. Anda juga dapat membuat alias yang mengarah ke versi tertentu. Versi dan alias layanan memungkinkan Anda memublikasikan, melakukan rollback, serta menjalankan rilis canary. Topik ini menjelaskan cara menggunakan versi dan alias untuk menerapkan rilis canary di Konsol Function Compute.
Alur kerja rilis canary
Prasyarat
Langkah 1: Siapkan dan uji fungsi
Saat Anda membuat layanan dan fungsinya, versi layanan tersebut adalah LATEST. Debug fungsi pada versi LATEST hingga stabil. Anda dapat mengeksekusi fungsi versi LATEST di Konsol.
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, klik nama fungsi yang diinginkan. Di halaman Detail Fungsi yang muncul, klik tab Code.
Di editor kode, modifikasi kode untuk melihat versi fungsi. Klik Deploy Code, lalu klik Test Function.
Kode berikut memberikan contoh cara melihat versi fungsi.
module.exports.handler = function(eventBuf, context, callback) { var qualifier = context['service']['qualifier'] var versionId = context['service']['versionId'] console.log('Qualifier from context:', qualifier); console.log('VersionId from context: ', versionId); callback(null, qualifier); };# -*- coding: utf-8 -*- def handler(event, context): qualifier = context.service.qualifier versionId = context.service.version_id print('Qualifier from context:' + qualifier) print('VersionId from context:' + versionId) return 'hello world'<?php function handler($event, $context) { $qualifier = $context["service"]["qualifier"]; $versionId = $context["service"]["versionId"]; print($qualifier); print($versionId); return "hello world"; }using System; using System.IO; using Aliyun.Serverless.Core; using Microsoft.Extensions.Logging; namespace Desktop { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } class App { public string Handler(Stream input, IFcContext context) { ILogger logger = context.Logger; var qualifier = context.ServiceMeta.Qualifier; var versionId = context.ServiceMeta.VersionId; logger.LogInformation("Qualifier from context: {0}", qualifier); logger.LogInformation("versionId from context: {0}", versionId); return "hello world"; } } }Setelah eksekusi selesai, lihat output log. Output log menunjukkan bahwa nilai bidang qualifier, yang menunjukkan versi, adalah LATEST. Artinya, fungsi yang dieksekusi termasuk dalam versi LATEST.
Langkah 2: Publikasikan dan uji versi
Saat versi LATEST layanan sudah stabil, publikasikan versi tersebut. Gunakan versi stabil ini untuk melayani permintaan online. Untuk informasi selengkapnya, lihat Publikasikan versi.
Setelah versi baru dipublikasikan, eksekusi fungsi versi baru tersebut di Konsol.
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, dari daftar drop-down Version, pilih nomor versi dari versi baru.

Klik nama fungsi target, klik tab Function Code, lalu klik Test Function.
Setelah eksekusi selesai, lihat log eksekusi. Output log menunjukkan bahwa qualifier bernilai 1 dan versionId yang diurai bernilai 1. Artinya, fungsi yang dieksekusi termasuk dalam versi 1.
Langkah 3: Gunakan alias untuk mengalihkan Trafik
Setelah versi baru online, buat alias yang mengarah ke versi tersebut. Saat versi diperbarui, Anda dapat mengubah versi yang dituju oleh alias. Pemanggil tidak perlu mengetahui versi layanan spesifik dan cukup menggunakan alias yang sesuai. Untuk informasi selengkapnya tentang cara membuat alias, lihat Buat alias.
Setelah alias dibuat, verifikasi di Konsol apakah versi fungsi yang benar dieksekusi.
Topik ini menggunakan contoh alias bernama alias1 yang mengarah ke versi 1.
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, klik nama fungsi yang diinginkan.
Di halaman detail fungsi, dari daftar drop-down Version or Alias di pojok kanan atas, pilih alias baru yang dibuat alias1.

Klik tab Function Code, lalu klik Test Function.
Setelah eksekusi selesai, lihat output log. Output log menunjukkan bahwa qualifier bernilai alias1 dan versionId yang diurai bernilai 1. Artinya, fungsi yang dieksekusi termasuk dalam alias alias1, yang mengarah ke versi 1.
Setelah versi baru dikembangkan, gunakan versi rilis canary untuk memastikan rilis versi baru berjalan stabil.
Publikasikan versi baru 2. Untuk informasi selengkapnya, lihat Publikasikan versi.
Setelah versi dipublikasikan, Anda dapat melihat versi baru tersebut di daftar versi.
Di panel navigasi sebelah kiri, klik Alias Management.
Di daftar alias, temukan alias alias1 yang mengarah ke versi 1. Di kolom Actions, klik Edit.
Di panel Edit Service Alias, tetapkan versi baru 2 sebagai Canary Release Version, tentukan tipe rilis canary, lalu klik OK.
Random Grayscale (Percentage)
Tentukan Canary Release Version Weight, seperti yang ditunjukkan pada gambar berikut.

Setelah pengaturan selesai, panggil alias alias1 untuk memverifikasi apakah sebagian Trafik online dialihkan ke versi baru 2. Dalam contoh ini, jika Anda memanggil alias alias1 untuk mengeksekusi fungsi sebanyak 10 kali, versi 2 dipanggil 3 kali dan versi 1 dipanggil 7 kali.
Lakukan rilis canary berdasarkan aturan tertentu
CatatanRilis canary berdasarkan aturan tertentu hanya didukung untuk fungsi HTTP.

Dalam contoh ini, pesan permintaan diarahkan ke versi rilis canary hanya ketika parameter key diatur ke
x-test-uid.
Tabel berikut menjelaskan parameter untuk membuat aturan rilis canary.
Nama Parameter
Deskripsi
Name
Nama alias yang akan dibuat.
Primary Version
Versi utama dari alias.
Enable Canary Release Version
Menentukan apakah akan mengaktifkan versi rilis canary.
Canary Release Version
Versi rilis canary dari alias.
Canary Release Type
Strategi grayscale terbagi menjadi dua kategori: random grayscale by percentage dan grayscale by specified rules.
Perform a canary release based on a random percentage: Mengalihkan Trafik ke versi rilis canary berdasarkan bobot tertentu.
Perform a canary release based on a specified rule: Melakukan rilis canary berdasarkan aturan tertentu.
Canary Release Version Weight
Parameter ini wajib diisi saat Grayscale Type diatur ke Random grayscale by percentage.
Parameter ini menentukan persentase Trafik yang dialihkan ke versi rilis canary. Misalnya, jika Anda mengatur parameter ini ke 5, Function Compute mengalokasikan 5% Trafik ke versi rilis canary dan 95% Trafik ke versi utama.
Rule Pattern
Parameter ini wajib diisi saat Grayscale Type diatur ke Canary Rule.
Parameter ini menentukan mode pemilihan aturan. Nilai yang valid:
Meet all of the following rules
Meet any of the following rules
Rule List
Parameter ini wajib diisi saat Canary Release Type diatur ke Perform a canary release based on a specified rule.
Parameter ini menentukan isi aturan, yang mencakup bagian-bagian berikut:
Parameter Type: Nilai yang valid meliputi Header, Cookie, dan Query.
Parameter: Nama parameter yang mengontrol rilis canary.
Condition: Kondisi untuk perhitungan. Function Compute menghitung nilai aktual dari Parameter terhadap nilai parameter yang Anda tentukan berdasarkan kondisi tersebut. Jika kondisi terpenuhi, permintaan diarahkan ke versi rilis canary. Nilai yang valid meliputi:
=, !=, >, <, >=, <=: Kondisi perbandingan operator. Misalnya, jika Anda mengatur Condition ke=, permintaan diarahkan ke versi rilis canary hanya jika nilai aktual parameter permintaan sama dengan Value parameter yang ditentukan.in: Kondisi pencocokan string. Permintaan diarahkan ke versi rilis canary hanya jika nilai aktual parameter permintaan termasuk dalam Value parameter yang ditentukan.Value distribution percentage: Melakukan rilis canary berdasarkan persentase tertentu dari nilai parameter. Misalnya, jika Anda mengatur Parameter Type ke Header, Parameter keuser-id, dan Value ke20, permintaan yang sesuai dengan 20% nilai distribusi dari Header permintaan HTTPuser-iddiarahkan ke versi rilis canary.
Value: Nilai parameter yang mengontrol rilis canary.
Klik +Add Rule di bawah untuk menambahkan lebih banyak aturan.
Opsi Lanjutan
Canary Release Ratio for Provisioned Instances
Mengontrol rasio instans canary dalam mode provisioned. Jika jumlah Instans yang disediakan lebih dari 1, jumlah instans dalam mode provisioned dihasilkan berdasarkan rasio yang Anda tentukan untuk parameter ini. Jika tidak, jumlah instans dalam mode provisioned dihasilkan berdasarkan rasio default 1%.
PentingParameter ini hanya berlaku jika Anda memiliki lebih dari satu Instans yang disediakan.
Setelah versi rilis canary berjalan stabil, Anda dapat mengalihkan seluruh Trafik online ke versi baru 2.
FAQ
Bagaimana cara menentukan versi layanan yang dipanggil?
Saat Anda menggunakan fitur rilis canary, Function Compute mengalokasikan Trafik berdasarkan bobot yang Anda tentukan. Anda dapat menentukan versi layanan yang dipanggil dengan cara berikut:
Hal ini ditentukan dalam parameter permintaan context.
Untuk setiap pemanggilan fungsi, parameter input context berisi parameter service yang mencakup bidang qualifier dan versionId.
qualifier: Informasi versi yang diteruskan selama pemanggilan fungsi. Nilainya bisa berupa nomor versi atau alias.
versionId: Nomor versi spesifik yang diurai dari qualifier selama eksekusi fungsi.
Tentukan versi dari tanggapan pemanggilan fungsi sinkron
Tanggapan pemanggilan fungsi sinkron berisi Header x-fc-invocation-service-version, yang menunjukkan versi layanan yang dipanggil.