Alias de fonctions Lambda
Vous pouvez créer un ou plusieurs alias pour une fonction Lambda. Un alias Lambda s'apparente à un pointeur vers une version de fonction spécifique. Les utilisateurs peuvent accéder à la version de fonction à l'aide du nom Amazon Resource Name (ARN) de l'alias.
Pour créer un alias
-
Ouvrez la page des fonctions
sur la console Lambda. -
Choisissez le nom d'une fonction.
-
Sur la page de configuration de la fonction, choisissez Actions, Create alias (Créer un alias).
-
Sur la page Create alias (Créer un alias), procédez de la manière suivante :
-
Renseignez le champ Name (Nom) pour l'alias.
-
(Facultatif) Renseignez le champ Description de l'alias.
-
Pour Version, choisissez une version de fonction vers laquelle vous souhaitez que l'alias pointe.
-
(Facultatif) Pour configurer le routage sur l'alias, développez Weighted alias (Alias pondéré). Pour de plus amples informations, veuillez consulter Configuration du routage d’alias.
-
Choisissez Save.
-
Pour afficher les alias actuellement définis pour une fonction, sur la page de configuration de la fonction, choisissez Qualifiers (Qualificateurs), puis l'onglet Aliases (Alias).
Gestion des alias avec l'API Lambda
Pour créer un alias à l'aide de AWS Command Line Interface (AWS CLI), utilisez la
commande create-alias
$
aws lambda create-alias --function-name
my-function
--namealias-name
--function-versionversion-number
--description " "
Pour modifier un alias afin qu'il pointe vers une nouvelle version de la fonction,
utilisez la commande update-alias
$
aws lambda update-alias --function-name
my-function
--namealias-name
--function-versionversion-number
Pour créer un alias, utilisez la commande delete-alias
$
aws lambda delete-alias --function-name
my-function
--namealias-name
Les commandes de l'AWS CLI des étapes précédentes correspondent aux opérations d'API Lambda suivantes :
Utilisation des alias
Chaque alias a un ARN unique. Un alias peut uniquement pointer vers une version de fonction, et non vers un autre alias. Vous pouvez mettre à jour un alias de sorte qu’il pointe vers une nouvelle version de la fonction.
Les sources d'événement telles que Amazon Simple Storage Service (Amazon S3) appellent votre fonction Lambda. Ces sources d'événements gèrent un mappage qui identifie la fonction à appeler lorsque des événements se produisent. Si vous spécifiez un alias de fonction Lambda dans la configuration du mappage, vous n'avez pas besoin de mettre à jour le mappage lorsque la version de la fonction change. Pour de plus amples informations, veuillez consulter Mappages de source d'événement AWS Lambda.
Dans une stratégie de ressources, vous pouvez accorder des autorisations aux sources d'événements pour utiliser votre fonction Lambda. Si vous spécifiez un ARN d'alias dans la stratégie, vous n'avez pas besoin de mettre à jour la stratégie lorsque la version de la fonction change.
Stratégies basées sur une ressource
Vous pouvez utiliser une stratégie basée sur les ressources pour accorder l'accès à votre fonction à un service, à une ressource ou à un compte.
La portée de cette autorisation est dépendante du fait que vous appliquiez l'autorisation
à un alias, à une version ou à la fonction entière. Par exemple, si vous utilisez
un nom d'alias (tel que helloworld:PROD
), l'autorisation vous permet d'appeler la fonction helloworld
à l'aide de l'ARN d'alias (helloworld:PROD
).
Si vous essayez d'appeler la fonction sans alias ou version spécifique, vous obtenez une erreur d'autorisation. Cette erreur d'autorisation continue de se produire même si vous tentez d'appeler directement la version de fonction associée à l'alias.
Par exemple, la commande AWS CLI suivante accorde des autorisations Amazon S3 pour
invoquer l'alias PROD de la fonction helloworld
lorsque le service Amazon S3 agit au nom de examplebucket
.
$
aws lambda add-permission --function-name helloworld \ --qualifier PROD --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction \ --source-arn arn:aws:s3:::examplebucket --source-account 123456789012
Pour de plus amples informations sur l'utilisation des noms de ressources dans les stratégies, veuillez consulter Ressources et conditions pour les actions Lambda.
Configuration du routage d’alias
Utilisez la configuration de routage sur un alias pour envoyer une partie du trafic vers une deuxième version de la fonction. Par exemple, vous pouvez réduire le risque de déploiement d'une nouvelle version en configurant l'alias de sorte qu’il envoie la majeure partie du trafic vers la version existante, et seulement un faible pourcentage du trafic vers la nouvelle version.
Vous pouvez faire pointer un alias vers deux versions de fonction Lambda maximum. Les versions doivent répondre aux critères suivants :
-
Les deux versions doivent avoir le même rôle d'exécution.
-
Les deux versions doivent avoir la même configuration de file d'attente de lettres mortes ou aucune configuration de file d'attente de lettres mortes.
-
Les deux versions doivent être publiées. L'alias ne peut pas pointer vers
$LATEST
.
Pour configurer le routage sur un alias
-
Ouvrez la page des fonctions
sur la console Lambda. -
Choisissez le nom d'une fonction.
-
Vérifiez que la fonction a au moins deux versions publiées. Sur la page de configuration de la fonction, choisissez Qualifiers (Qualificateurs), puis cliquez sur l'onglet Versions pour afficher la liste des versions. Pour créer des versions supplémentaires, suivez les instructions de la section Versions de fonction Lambda.
-
Choisissez Actions, Create alias (Créer un alias).
-
Sur la page Create alias (Créer un alias), procédez de la manière suivante :
-
Renseignez le champ Name (Nom) pour l'alias.
-
(Facultatif) Renseignez le champ Description de l'alias.
-
Pour Version, choisissez la première version de fonction vers laquelle vous souhaitez que l'alias pointe.
-
Développez Weighted alias (Alias pondéré).
-
Pour Additional version (Version supplémentaire), choisissez la deuxième version de fonction vers laquelle vous souhaitez que l'alias pointe.
-
Pour Weight (%) (Pondération (%)), entrez une valeur de pondération pour la fonction. La pondération est le pourcentage de trafic qui est affecté à cette version lorsque l'alias est appelé. La première version reçoit le reste du trafic. Par exemple, si vous spécifiez 10 % pour Additional version (Version supplémentaire), 90 % du trafic est automatiquement affecté à la première version.
-
Choisissez Enregistrer.
-
Configuration du routage d’alias
Utilisez les commandes AWS CLI create-alias
et update-alias
pour configurer la pondération du trafic entre deux versions de fonction. Lorsque
vous créez ou mettez à jour l'alias, vous spécifiez la pondération du trafic dans
le paramètre routing-config
.
L'exemple suivant crée un alias de fonction Lambda nommé routing-alias qui pointe vers la version 1 de la fonction. La version 2 de la fonction reçoit 3 % du trafic. Les 97 % restants du trafic sont acheminés vers la version 1.
$
aws lambda create-alias --name routing-alias --function-name my-function --function-version 1 \ --routing-config AdditionalVersionWeights={"2"=0.03}
Utilisez la commande update-alias
pour augmenter le pourcentage de trafic entrant vers la version 2. Dans l'exemple
suivant, vous augmentez le trafic à 5 %.
$
aws lambda update-alias --name routing-alias --function-name my-function \ --routing-config AdditionalVersionWeights={"2"=0.05}
Pour acheminer l'ensemble du trafic vers la version 2, utilisez la commande update-alias
pour modifier la propriété function-version
afin que l'alias pointe vers la version 2. La commande réinitialise également la
configuration de routage.
$
aws lambda update-alias --name routing-alias --function-name my-function \ --function-version 2 --routing-config AdditionalVersionWeights={}
Les commandes de l'AWS CLI des étapes précédentes correspondent aux opérations d'API Lambda suivantes :
Détermination de la version appelée
Lorsque vous configurez des pondérations de trafic entre deux versions de fonction, il existe deux façons de déterminer la version de fonction Lambda qui a été appelée :
-
CloudWatch Logs – Lambda émet automatiquement une entrée de journal
START
contenant l'ID de la version appelée dans Amazon CloudWatch Logs pour chaque appel de fonction. Voici un exemple :19:44:37 START RequestId:
request id
Version: $version
Pour les appels d'alias, Lambda utilise la dimension
Executed Version
pour filtrer les données de métriques en fonction de la version appelée. Pour de plus amples informations, veuillez consulter Utilisation des métriques de fonction AWS Lambda. -
Charge utile de réponse (appels synchrones) : les réponses aux appels de fonction synchrones incluent un en-tête
x-amz-executed-version
indiquant la version de fonction appelée.