Pourquoi ne puis-je pas détacher ou supprimer une interface réseau Elastic créée par Lambda ?

Lecture de 4 minute(s)
0

Lorsque j'essaie de détacher ou de supprimer une interface réseau Elastic créée par AWS Lambda, le message d'erreur suivant s'affiche : « Vous n'êtes pas autorisé à gérer les pièces jointes “ela-attach”. »

Brève description

Lorsque vous configurez une fonction Lambda pour accéder aux ressources d'un Amazon Virtual Private Cloud (Amazon VPC), le service Lambda affecte la fonction à une interface réseau. Vous pouvez supprimer cette interface réseau uniquement via le service Lambda. Si vous supprimez les ressources que représente l'interface réseau, le service Lambda détache et supprime l'interface réseau automatiquement. Pour supprimer les interfaces réseau inutilisées, le service Lambda emploie le rôle d'exécution des fonctions qui ont créé les interfaces réseau.

Une interface réseau peut être utilisée par des fonctions ou des versions de fonctions présentant les mêmes configurations Amazon VPC que les fonctions qui les ont créées. Dans ce cas, vous ne pouvez pas supprimer l'interface réseau.

Pour identifier les fonctions ou les versions de fonctions actuellement affectées à une interface réseau, utilisez le script bash Lambda ENI Finder sur le site Web GitHub. Pour plus d'informations, consultez Interfaces réseau gérées par le demandeur.

Remarque : le service Lambda partage les interfaces réseau entre plusieurs fonctions ayant la même configuration Amazon VPC. Le partage d'interfaces réseau permet de réduire le nombre d'interfaces réseau utilisées dans votre compte AWS.

Résolution

Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez la version la plus récente de l’AWS CLI.

Exécutez le script Lambda ENI Finder pour identifier les fonctions et les versions de fonctions qui utilisent l'interface réseau

Remarque : les commandes fonctionnent uniquement pour les systèmes d'exploitation Linux, Unix et macOS.

Pour identifier les fonctions et les versions de fonctions qui utilisent l'interface réseau, procédez comme suit :

  1. Configurez l'interface de ligne de commande AWS avec un rôle AWS Identity and Access Management (IAM) autorisé à interroger Lambda et les interfaces réseau. Pour plus d'informations, consultez Rôle d'exécution et autorisations utilisateur.
    Remarque : Lambda utilise les autorisations associées au rôle d'exécution d'une fonction pour supprimer l'interface réseau Elastic Hyperplane. Par conséquent, ne supprimez pas le rôle d'exécution avant que Lambda ne supprime l'interface réseau Elastic Hyperplane.

  2. Installez le processeur JSON en ligne de commande jq depuis le site Web de jq :

    $ sudo yum install jq -y
  3. Vérifiez que Git est installé :

    $ sudo yum install git -y

    Pour installer Git, consultez Démarrage : installation de Git sur le site Web de Git.

  4. Clonez le référentiel GitHub aws-support-tools depuis le site web GitHub :

    $ git clone https://github.com/awslabs/aws-support-tools.git
  5. Remplacez le répertoire par l'emplacement de Lambda ENI Finder :

    $ cd aws-support-tools
    $ cd Lambda
    $ cd FindEniMappings
  6. Exécutez le script Lambda ENI Finder pour l'interface réseau que vous souhaitez supprimer :

    ./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1

    Remarque : remplacez eni-0123456789abcef01 par l'ID de l'interface réseau. Vous pouvez trouver l'ID sur la page Interfaces réseau de la console Amazon Elastic Compute Cloud (Amazon EC2). Remplacez us-east-1 par la région AWS dans laquelle se trouve l'interface réseau.

La sortie renvoie une liste des fonctions Lambda et des versions de fonctions de votre compte AWS et de la région spécifiée qui utilisent l'interface réseau. Si vous avez besoin de l'une de ces fonctions ou versions de fonctions, ne supprimez pas l'interface réseau.

Supprimez une interface réseau créée par Lambda

Pour supprimer une interface réseau créée par Lambda, procédez comme suit :

  1. Pour chaque version non publiée d’une fonction Lambda ($LATEST) répertoriée par le script Lambda ENI Finder, effectuez l'une des actions suivantes :
    Modifiez la configuration Amazon VPC pour utiliser un sous-réseau et un groupe de sécurité différents.
    -ou-
    Déconnectez la fonction de l'Amazon VPC.
  2. Pour chaque version de fonction Lambda publiée et répertoriée, supprimez la version de la fonction.
    Remarque : les versions de fonction publiées ne peuvent pas être modifiées, vous ne pouvez donc pas modifier la configuration du VPC.
  3. Vérifiez que l'interface réseau n'est plus utilisée. Pour ce faire, exécutez à nouveau le script Lambda ENI Finder.

Si la sortie ne répertorie aucune autre fonction ou version de fonction, Lambda supprime automatiquement l'interface réseau dans les 20 minutes.

Informations connexes

Comment puis-je obtenir des interfaces réseau Elastic supplémentaires si j'ai atteint la limite dans une région AWS ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un mois