Anda dapat memublikasikan satu atau beberapa versi fungsi. Setiap kali memublikasikan versi, Function Compute membuat snapshot kode dan konfigurasi yang immutable dengan nomor versi unik. Anda juga dapat membuat alias sebagai penunjuk ke versi tertentu. Penggunaan versi dan alias secara bersamaan memungkinkan Anda mengelola deployment, melakukan rollback, serta menerapkan rilis canary dengan mudah.
Alur kerja rilis canary
Prasyarat
Langkah 1: Siapkan dan uji fungsi
Saat membuat fungsi, versi awalnya adalah LATEST. Anda dapat mengembangkan dan menguji fungsi tersebut dalam versi LATEST hingga stabil, lalu memanggilnya dari Konsol.
Masuk ke Function Compute console. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Code.
Di editor kode, perbarui kode untuk melihat versi fungsi. Klik Deploy, lalu klik Test Function.
Contoh kode berikut menunjukkan 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 word"; } } }Setelah eksekusi selesai, Anda dapat melihat output log. Log tersebut menunjukkan bahwa bidang qualifier memiliki nilai LATEST, yang berarti versi LATEST fungsi tersebut dieksekusi.
Langkah 2: Publikasikan dan uji versi
Saat versi LATEST fungsi Anda sudah stabil, Anda dapat memublikasikannya untuk menangani traffic produksi. Untuk informasi selengkapnya, lihat Publish a version.
Setelah memublikasikan versi baru, Anda dapat memanggilnya dari Konsol.
Masuk ke Function Compute console. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Version Management, lalu klik versi yang dituju.
Di halaman detail versi yang dituju, klik tab Code, lalu klik Test Function.
Setelah eksekusi selesai, Anda dapat melihat log eksekusi. Output log menunjukkan bahwa qualifier bernilai 1 dan versionId yang diurai bernilai 1, yang berarti versi 1 fungsi tersebut dieksekusi.
Langkah 3: Gunakan alias untuk mengalihkan traffic
Setelah menerapkan versi baru, Anda dapat membuat alias yang mengarah ke versi tersebut. Saat memperbarui fungsi, cukup perbarui alias agar mengarah ke versi baru. Hal ini memungkinkan pemanggil menggunakan alias tetap tanpa perlu melacak nomor versi. Untuk petunjuk pembuatan alias, lihat Create an alias.
Setelah membuat alias, Anda dapat memverifikasi dari Konsol bahwa versi fungsi yang benar dipanggil.
Dalam contoh ini, alias alias1 mengarah ke versi 1.
Masuk ke Function Compute console. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Alias Management, lalu klik alias yang dituju.
Di halaman detail alias yang dituju, klik tab Test, lalu klik Test Function.
Setelah eksekusi selesai, Anda dapat melihat output log. Output log menunjukkan bahwa qualifier bernilai alias1 dan versionId yang diselesaikan bernilai 1. Hal ini menunjukkan bahwa fungsi dieksekusi menggunakan alias alias1, yang mengarah ke versi 1.
Setelah mengembangkan versi baru, gunakan rilis canary untuk memastikan peluncuran yang stabil.
Anda hanya dapat memublikasikan versi baru jika kode atau konfigurasi fungsi telah berubah sejak versi sebelumnya dipublikasikan.
Publikasikan versi baru 2. Untuk informasi selengkapnya, lihat Publish a version.
Setelah versi dipublikasikan, Anda dapat melihat versi baru tersebut dalam daftar versi.
Di halaman detail fungsi, klik tab Alias. Di kolom Actions untuk alias yang dituju, klik Modify.
Di panel Modify Alias, tetapkan versi baru 2 sebagai Canary Release Version, konfigurasikan Canary Release Version Weight, lalu klik OK.
Setelah memastikan bahwa versi canary stabil, Anda dapat melakukan pengalihan penuh untuk mengarahkan seluruh lalu lintas ke versi 2.
FAQ
Konfirmasi versi fungsi yang dipanggil
Saat menggunakan fitur rilis canary, Function Compute mengalokasikan traffic sesuai bobot yang Anda tentukan. Anda dapat menentukan versi fungsi yang dipanggil dengan cara berikut:
Ditentukan oleh parameter input context
Pada setiap pemanggilan fungsi, parameter input context mencakup bidang qualifier dan versionId.
qualifier: Versi atau alias fungsi yang akan dipanggil.
versionId: Nomor versi spesifik yang diselesaikan dari qualifier saat fungsi dieksekusi.
Melalui respons pemanggilan fungsi sinkron
Respons pemanggilan fungsi sinkron mencakup header x-fc-invocation-function-version, yang menentukan versi fungsi yang dipanggil.
Referensi
Untuk informasi lebih lanjut tentang penerbitan versi fungsi dan konfigurasi alias, lihat Manage versions dan Manage aliases.