Tous les produits
Search
Centre de documentation

Function Compute:Mettre en œuvre des déploiements canary avec les versions et les alias

Dernière mise à jour :Aug 12, 2026

Vous pouvez publier une ou plusieurs versions d'une fonction. À chaque publication, Function Compute crée un snapshot immuable de votre code et de votre configuration, identifié par un numéro de version unique. Vous pouvez également créer un alias qui sert de pointeur vers une version spécifique. L'utilisation conjointe des versions et des alias facilite la gestion des déploiements, les rollbacks et la mise en œuvre de déploiements canary.

Flux de travail du déploiement canary

Prérequis

Étape 1 : Préparer et tester la fonction

Lors de la création d'une fonction, sa version initiale est LATEST. Développez et testez votre fonction dans cette version LATEST jusqu'à ce qu'elle soit stable. Vous pouvez invoquer la version LATEST de la fonction directement depuis la console.

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, cliquez sur l'onglet Code.

  4. Dans l'éditeur de code, mettez à jour le code pour afficher la version de la fonction. Cliquez sur Deploy, puis sur Test Function.

    Les exemples de code suivants illustrent comment consulter la version de la fonction.

    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";
            }
        }
    }

    Une fois l'exécution terminée, consultez la sortie du journal. Le journal indique que le champ qualifier a pour valeur LATEST, ce qui signifie que la version LATEST de la fonction a été exécutée.

Étape 2 : Publier et tester une version

Lorsque la version LATEST de votre fonction est stable, publiez-la pour traiter le trafic de production. Pour plus d'informations, voir Publier une version.

Après la publication d'une nouvelle version, vous pouvez l'invoquer depuis la console.

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, cliquez sur l'onglet Version Management, puis sur la version cible.

  4. Sur la page de détails de la version cible, cliquez sur l'onglet Code, puis sur Test Function.

    Une fois l'exécution terminée, consultez le journal d'exécution. La sortie du journal indique que le qualifier est 1 et que le versionId résolu est 1, ce qui confirme que la version 1 de la fonction a été exécutée.

Étape 3 : Utiliser un alias pour basculer le trafic

Après le déploiement d'une nouvelle version, créez un alias qui pointe vers celle-ci. Lors de la mise à jour de la fonction, modifiez l'alias pour qu'il pointe vers la nouvelle version. Ainsi, les appelants utilisent un alias fixe sans avoir à suivre les numéros de version. Pour obtenir des instructions sur la création d'un alias, voir Créer un alias.

Une fois l'alias créé, vérifiez depuis la console que la bonne version de la fonction est invoquée.

Dans cet exemple, l'alias alias1 pointe vers la version 1.

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, cliquez sur l'onglet Alias Management, puis sur l'alias cible.

  4. Sur la page de détails de l'alias cible, cliquez sur l'onglet Test, puis sur Test Function.

    Une fois l'exécution terminée, consultez la sortie du journal. Celle-ci indique que le qualifier est alias1 et que le versionId résolu est 1. Cela confirme que la fonction a été exécutée via l'alias alias1, lequel pointe vers la version 1.

Après le développement d'une nouvelle version, utilisez un déploiement canary pour garantir un déploiement stable.

Remarque

La publication d'une nouvelle version n'est possible que si le code ou la configuration de la fonction a changé depuis la dernière publication.

  1. Publiez une nouvelle version 2. Pour plus d'informations, voir Publier une version.

    Une fois la version publiée, elle apparaît dans la liste des versions.

  2. Sur la page de détails de la fonction, cliquez sur l'onglet Alias. Dans la colonne Actions correspondant à l'alias cible, cliquez sur Modify.

  3. Dans le panneau Modify Alias, définissez la nouvelle version 2 comme Canary Release Version, configurez le Canary Release Version Weight, puis cliquez sur OK.

    Après avoir vérifié la stabilité de la version canary, effectuez une bascule complète pour router tout le trafic vers la version 2.

FAQ

Confirmer la version de fonction invoquée

Lorsque vous utilisez la fonctionnalité de déploiement canary, Function Compute répartit le trafic selon les poids spécifiés. Vous pouvez identifier la version de la fonction invoquée par les moyens suivants :

  • Via le paramètre d'entrée context

    Pour chaque invocation de fonction, le paramètre d'entrée context contient les champs qualifier et versionId.

    • qualifier : la version ou l'alias de la fonction à invoquer.

    • versionId : le numéro de version spécifique résolu à partir du qualifier lors de l'exécution de la fonction.

  • À l'aide de la réponse d'une invocation synchrone de fonction

    La réponse d'une invocation synchrone de fonction inclut l'en-tête x-fc-invocation-function-version, qui précise la version de la fonction invoquée.

Références

Pour plus d'informations sur la publication des versions de fonctions et la configuration des alias, voir Gérer les versions et Gérer les alias.