Beberapa versi fungsi dapat diterbitkan sesuai kebutuhan. Saat penerbitan, sistem otomatis menghasilkan nomor versi unik dan mempertahankan kode serta konfigurasi saat ini sebagai garis dasar yang tidak dapat diubah. Selain itu, alias dapat dibuat untuk menunjuk ke versi tertentu. Penggunaan versi dan alias memungkinkan manajemen yang lebih sederhana dalam berbagai skenario seperti rilis, rollback, dan penerapan canary.
Proses rilis canary
Sebelum Anda mulai
Fungsi telah dibuat. Untuk informasi lebih lanjut, lihat Buat Fungsi.
Langkah 1: Persiapkan dan uji fungsi
Saat Anda membuat fungsi untuk pertama kalinya, versi fungsi tersebut adalah LATEST. Anda dapat men-debug fungsi versi LATEST hingga stabil. Anda juga dapat memanggil fungsi versi LATEST di Konsol Function Compute.
Masuk ke Konsol Function Compute. Di panel navigasi sisi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin Anda kelola.
Pada halaman Detail Fungsi, klik tab Code.
Di editor kode, modifikasi kode untuk melihat versi fungsi, klik Deploy, lalu klik Test Function.
Kode contoh berikut digunakan untuk memeriksa 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. Dalam output log, nilai parameter qualifier, yang menunjukkan informasi versi, adalah LATEST. Ini berarti fungsi yang dieksekusi termasuk dalam fungsi versi LATEST.
Langkah 2: Publikasikan dan uji versi
Setelah fungsi terbukti stabil, Anda dapat mempublikasikan versi ini dan menggunakannya untuk memproses permintaan online. Untuk informasi lebih lanjut, lihat Publikasikan Versi.
Setelah versi baru dipublikasikan, Anda dapat mengeksekusinya di Konsol Function Compute.
Masuk ke Konsol Function Compute. Di panel navigasi sisi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin Anda kelola.
Pada halaman Detail Fungsi, beralihlah ke tab Versions dan klik versi yang ingin Anda kelola.
Pada halaman yang muncul, klik tab Code, lalu klik Test Function.
Setelah fungsi dieksekusi, Anda dapat melihat output log eksekusi. Dalam output log, nilai parameter qualifier, yang menunjukkan informasi versi, adalah 1 dan nilai parameter versionId, yang menunjukkan ID versi, adalah 1. Output log menunjukkan bahwa fungsi yang dieksekusi adalah Versi 1.
Langkah 3: Gunakan alias untuk mengalihkan lalu lintas
Setelah versi dipublikasikan, Anda dapat membuat alias dan mengarahkan alias tersebut ke versi tersebut. Saat versi diperbarui, Anda dapat mengarahkan alias ke versi yang diperbarui. Pemanggil hanya perlu menggunakan alias yang benar tanpa harus mengetahui versi spesifik dari fungsi tersebut. Untuk informasi lebih lanjut tentang cara membuat alias, lihat Buat Alias.
Setelah alias dibuat, Anda dapat memverifikasi apakah versi fungsi yang benar dieksekusi di Konsol Function Compute.
Dalam topik ini, alias alias1 mengarah ke versi 1.
Masuk ke Konsol Function Compute. Di panel navigasi sisi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin Anda kelola.
Pada halaman Detail Fungsi, beralihlah ke tab Aliases dan klik alias yang ingin Anda lihat.
Pada halaman yang muncul, klik tab Test, lalu klik Test Function.
Setelah eksekusi selesai, Anda dapat melihat output log. Dalam output log, nilai parameter qualifier, yang menunjukkan informasi versi, adalah alias1 dan nilai parameter versionId, yang menunjukkan ID versi, adalah 1. Log menunjukkan bahwa fungsi dari alias alias1 dipanggil dan alias tersebut mengarah ke Versi 1.
Setelah versi baru dikembangkan, Anda dapat menggunakan fitur rilis canary untuk memastikan bahwa versi baru stabil sebelum dirilis secara resmi.
Versi baru hanya dapat dipublikasikan jika ada perubahan pada konfigurasi fungsi atau kode dibandingkan dengan versi sebelumnya.
Publikasikan Versi 2 sebagai versi baru. Untuk informasi lebih lanjut, lihat Publikasikan Versi.
Setelah versi dipublikasikan, Anda dapat melihat versi terbaru dalam daftar versi.
Pada halaman Detail Fungsi, beralihlah ke tab Aliases. Temukan alias yang ingin Anda kelola dan klik Modify di kolom Actions.
Di panel pengeditan alias, atur Versi 2 sebagai Canary Release Version, konfigurasikan Canary Release Version Weight, lalu klik OK.
Setelah versi rilis canary menjadi stabil, Anda dapat mengalihkan semua lalu lintas online ke Versi 2.
FAQ
Bagaimana cara memeriksa versi fungsi dari suatu pemanggilan?
Saat Anda menggunakan fitur rilis canary, Function Compute mengalokasikan lalu lintas berdasarkan bobot yang ditentukan. Anda dapat memeriksa versi fungsi yang dipanggil untuk memproses permintaan tertentu dengan menggunakan metode berikut:
Gunakan parameter context
Pada setiap pemanggilan fungsi, bidang qualifier dan versionId disertakan dalam parameter input context.
qualifier: Informasi versi yang dilewatkan saat fungsi dipanggil. Ini bisa berupa nomor versi atau alias.
versionId: ID versi spesifik yang diuraikan berdasarkan parameter qualifier saat fungsi dieksekusi.
Gunakan respons dari pemanggilan fungsi sinkron
Respons dari pemanggilan fungsi sinkron berisi header x-fc-invocation-function-version, yang menunjukkan versi fungsi yang dipanggil.
Informasi lebih lanjut
Untuk informasi lebih lanjut tentang cara mengelola versi dan alias, lihat Kelola Versi dan Kelola Alias.