Comment puis-je utiliser AWS CLI pour migrer une fonction Lambda vers un autre compte ou une autre région AWS ?

Lecture de 4 minute(s)
0

Je dois déplacer une fonction AWS Lambda entre des comptes ou des régions AWS.

Brève description

Pour migrer une fonction Lambda vers un deuxième compte ou une seconde région AWS, utilisez l'interface de la ligne de commande AWS (AWS CLI) :

  1. Exécutez la commande GetFunction pour télécharger le package de déploiement de la fonction Lambda.
  2. Configurez AWS CLI pour le deuxième compte ou la seconde région AWS où vous souhaitez déplacer la fonction.
    Remarque : vous pouvez également configurer un nouveau profil AWS CLI pour votre deuxième compte ou région AWS.
  3. Exécutez la commande CreateFunction pour créer une nouvelle fonction dans le deuxième compte ou la seconde région AWS.

Remarque : vous pouvez également migrer une fonction Lambda à l'aide de la console Lambda ou d'un modèle d'application sans serveur AWS (AWS SAM).

La résolution suivante vous permet de migrer une seule fonction à la fois entre des comptes ou des régions. Vous ne pouvez pas migrer directement et nativement des fonctions Lambda par lot.

Résolution

Remarque : si des erreurs surviennent lors de l'exécution des commandes AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'interface de la ligne de commande AWS.

Exécuter 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 à migrer.

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

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

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

Configurez AWS CLI pour le deuxième compte ou la seconde région AWS où vous souhaitez déplacer la fonction.

  1. Exécutez la commande Configure suivante :
    aws configure --profile profilename
    Important : remplacez profilename par un nom reconnaissable pour votre deuxième compte ou région AWS.
  2. Saisissez les valeurs d'entrée suivantes pour transmettre les informations d'identification de l'utilisateur AWS Identity and Access Management (IAM) du deuxième compte AWS et de la région :
    ID de clé d'accès AWS [None] : saisissez 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, saisissez la clé d'accès d'un utilisateur IAM dans votre premier compte AWS.
    Clé d'accès secrète AWS [None] : saisissez la clé d'accès secrète du même utilisateur IAM.
    Nom de région par défaut [None] : saisissez la région AWS vers laquelle vous souhaitez migrer votre fonction.

Pour en savoir plus, consultez la page Configurer AWS CLI.

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

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 avec le profil AWS CLI que vous avez configuré :
    aws lambda create-function \    --function-name my-function \
        --runtime nodejs18.x \    
        --zip-file fileb://my-function.zip \   
        --handler my-function.handler \
        --role arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-tges6bf4 \
        --profile profilename
    Remarque : dans cette commande, remplacez les valeurs suivantes par les informations de la fonction à migrer :
    Pour function-name, saisissez le nom de votre fonction.
    Pour runtime, saisissez le temps d'exécution de votre fonction.
    Pour zip-file, saisissez le chemin d'accès au package de déploiement de votre fonction.
    Pour handler, saisissez le nom du gestionnaire de votre fonction.
    Pour role, saisissez 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, saisissez le nom du profil AWS CLI que vous avez créé lorsque vous avez exécuté la commande Configure.
    Si vous souhaitez migrer une fonction vers une autre région tout en la conservant dans le même compte, vous pouvez conserver le rôle d'exécution.
  2. Pour vérifier que la migration a fonctionné, exécutez la commande list-functions suivante :
    aws lambda list-functions \    --profile profilename
    Remarque : remplacez profilename par le nom de profil AWS CLI que vous avez créé lorsque vous avez exécuté la commande Configure.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois