Why can't I detach or delete an elastic network interface that Lambda created?

4 minuto de leitura
0

When I try to detach or delete an elastic network interface that AWS Lambda created, I get the following error message: "You are not allowed to manage 'ela-attach' attachments."

Breve descrição

Quando você configura uma função do Lambda para acessar recursos em um Amazon Virtual Private Cloud (Amazon VPC), o Lambda atribui essa função a uma interface de rede. Você pode excluir essa interface de rede somente por meio do serviço Lambda. Se você excluir os recursos que a interface de rede representa, o Lambda desanexará e excluirá a interface de rede para você. Para excluir interfaces de rede não utilizadas, o serviço Lambda usa o perfil de execução das funções que criaram as interfaces de rede.

Uma interface de rede pode ser usada por funções ou versões de funções com as mesmas configurações do Amazon VPC das funções que as criaram. Nesse caso, você não pode excluir a interface de rede.

Para identificar quais funções ou versões de funções usam uma interface de rede, use o script Bash do Lambda ENI Finder no site do GitHub. Para obter mais informações, consulte Interfaces de rede gerenciadas pelo solicitante.

Observação: o Lambda compartilha interfaces de rede em várias funções que têm a mesma configuração da Amazon VPC. Para reduzir o número de interfaces de rede usadas na sua conta da AWS, você pode compartilhar interfaces de rede.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se está usando a versão mais recente da AWS CLI.

Execute o Lambda ENI Finder para identificar funções e versões de funções que usam a interface de rede

Observação: os comandos a seguir são válidos somente para sistemas operacionais Linux, Unix e macOS.

Para identificar funções e versões de funções que usam a interface de rede, conclua as seguintes etapas:

  1. Configure a AWS CLI com um perfil do AWS Identity and Access Management (IAM) que tenha permissões para consultar interfaces do Lambda e de rede. Para obter mais informações, consulte Função de execução e permissões de usuários.
    Observação: o Lambda usa as permissões no perfil de execução de uma função para excluir a interface de rede elástica Hyperplane. Não exclua a função de execução antes que o Lambda exclua a interface de rede elástica Hyperplane.

  2. Instale o processador JSON de linha de comando jq no site da jq:

    $ sudo yum install jq -y
  3. Verifique se o Git está instalado:

    $ sudo yum install git -y

    Para instalar o Git, consulte Getting started - Installing Git no site do Git.

  4. Clone o repositório do GitHub aws-support-tools no site do GitHub:

    $ git clone https://github.com/awslabs/aws-support-tools.git
  5. Altere o diretório para o local do Lambda ENI Finder:

    $ cd aws-support-tools
    $ cd Lambda
    $ cd FindEniMappings
  6. Execute o Lambda ENI Finder para a interface de rede que você deseja excluir:

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

    Observação: substitua eni-0123456789abcef01 pelo ID da interface de rede. Você pode encontrar o ID na página Interfaces de rede do console do Amazon Elastic Compute Cloud (Amazon EC2). Substitua us-east-1 pela região da AWS na qual a interface de rede reside.

A saída retorna uma lista das funções e versões de funções do Lambda na sua conta da AWS e na região especificada que usam a interface de rede. Se precisar de alguma dessas funções ou versões de funções, não exclua a interface de rede.

Excluir uma interface de rede criada pelo Lambda

Para excluir uma interface de rede criada pelo Lambda, conclua as seguintes etapas:

  1. Para cada versão não publicada da função do Lambda ($LATEST) listada pelo Lambda ENI Finder, execute uma das seguintes ações:
    Altere a configuração da Amazon VPC para usar uma sub-rede e um grupo de segurança diferentes.
    -ou-
    Desconecte a função da Amazon VPC.
  2. Para cada versão publicada da função do Lambda listada, exclua a versão da função.
    Observação: você não pode editar versões de funções publicadas, então você não pode alterar a configuração da VPC.
  3. Verifique se a interface de rede não está mais em uso. Para fazer isso, execute o Lambda ENI Finder novamente.

Se a saída não listar outras funções ou versões de funções, o Lambda excluirá automaticamente a interface de rede em 20 minutos.

Informações relacionadas

How do I get more elastic network interfaces if I've reached the limit in an AWS Region?

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses