Comment migrer une fonction Lambda vers un autre compte AWS ou une autre région à l'aide de l'AWS CLI ?

Dernière mise à jour : 03/02/2021

Je dois déplacer une fonction AWS Lambda d'un compte AWS (ou région AWS) à un autre. Comment procéder à l'aide de l'interface de ligne de commande AWS (AWS CLI) ?

Brève description

Pour migrer une fonction Lambda vers un deuxième compte AWS ou région à l'aide de l'AWS CLI, procédez comme suit :

1.    Exécutez la commande GetFunction pour télécharger le package de déploiement de la fonction Lambda.

2.    Configurez l'AWS CLI pour le deuxième compte AWS ou région vers lequel vous souhaitez déplacer la fonction.
Remarque : vous pouvez également configurer un nouveau profil AWS CLI pour votre deuxième compte AWS ou région.

3.    Exécutez la commande CreateFunction pour créer une nouvelle fonction dans le deuxième compte AWS ou la deuxième région.

Remarque : vous pouvez également migrer une fonction Lambda à l'aide de la console Lambda ou d'un AWS Serverless Application Model (AWS SAM).

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes depuis AWS CL, assurez-vous que vous utilisez la version la plus récente d'AWS CLI.

Exécutez la commande GetFunction pour télécharger le package de déploiement de la fonction Lambda

1.    Exécutez la commande GetFunction suivante :

aws lambda get-function --function-name my-function

Important : remplacez my-function par le nom de la fonction que vous souhaitez migrer.

2.    Dans la réponse de commande, ouvrez le lien URL après "Location":. Le lien apparaîtra dans un bloc de code similaire au suivant :

"Code": {
        "RepositoryType": "S3",
        "Location": "https://awslambda-us-west-2-tasks.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-function..."
    },

Remarque : ouvrir le lien après "Location": téléchargera le package de déploiement.

Configurez l'AWS CLI pour le deuxième compte AWS ou la deuxième région vers laquelle vous souhaitez déplacer la fonction

1.    Exécutez la commande Configure suivante :

aws configure --profile profilename

Important : modifiez profilename par un nom reconnaissable pour votre deuxième compte AWS ou région.

2.    Entrez les valeurs d'entrée suivantes pour transmettre les informations d'identification utilisateur AWS Identity and Access Management (IAM) du deuxième compte AWS et de la région :
Pour ID de clé d'accès [None]: entrez la clé d'accès d'un utilisateur IAM dans le deuxième compte AWS. Ou, si vous migrez la fonction vers une autre région, entrez la clé d'accès d'un utilisateur IAM dans votre premier compte AWS.
Pour Clé d'accès secrète AWS [None]: entrez la clé d'accès secrète du même utilisateur IAM.
Pour Nom de région par défaut [None]: entrez la région AWS vers laquelle vous migrez votre fonction.

Pour plus d'informations, consultez Configuration de l'AWS CLI.

Exécutez la commande CreateFunction pour créer une nouvelle fonction dans le deuxième compte AWS ou la deuxième région.

Remarque : vous avez besoin du package de déploiement de la fonction Lambda et du rôle d'exécution pour exécuter la commande CreateFunction.

1.    Exécutez la commande CreateFunction suivante à l'aide du profil AWS CLI que vous venez de configurer :

aws lambda create-function \
    --function-name my-function \
    --runtime nodejs10.x \    
    --zip-file fileb://my-function.zip \   
    --handler my-function.handler \
    --role arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-tges6bf4 \
    --profile profilename

Important : avant d'exécuter la commande, remplacez les valeurs suivantes par les informations de la fonction que vous souhaitez migrer :
Pour function-name, entrez le nom de votre fonction.
Pour environnement d’exécution , entrez l’environnement d’exécution de votre fonction.
Pour zip-file, entrez le chemin d'accès au fichier du package de déploiement de votre fonction.
Pour handler, entrez le nom du gestionnaire de votre fonction.
Pour le role, entrez l'ARN du rôle d'exécution Lambda qui se trouve dans le compte AWS vers lequel vous souhaitez migrer votre fonction.
Pour profile, entrez le nom de profil AWS CLI que vous avez créé lorsque vous avez exécuté la commande Configure.

Remarque : si vous migrez une fonction vers une autre région AWS, mais que vous la conservez dans le même compte AWS, vous pouvez continuer à utiliser le même rôle d'exécution.

2.    Exécutez la commande list-functions suivante pour confirmer que la migration a fonctionné :

aws lambda list-functions \
    --profile profilename

Important : remplacez profilename par le nom de profil AWS CLI que vous avez créé lorsque vous avez exécuté la commande Configure.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?