Por que não consigo separar ou excluir uma interface de rede elástica criada pelo Lambda?
Tentei separar ou excluir uma interface de rede elástica criada pelo AWS Lambda, mas recebi uma mensagem de erro.
Breve descrição
É possível excluir uma interface de rede somente por meio do 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 Lambda usa o perfil de execução das funções que criaram as interfaces de rede. No entanto, não é possível excluir as interfaces de rede que uma função ou versão da função usa.
O Lambda compartilha interfaces de rede em várias funções e mapeamentos da origem do evento que têm a mesma configuração da Amazon Virtual Private Cloud (Amazon VPC). Para reduzir o número de interfaces de rede usadas na sua conta da AWS, é possível compartilhar interfaces de rede.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Identificar as funções e as versões das funções que usam a interface de rede
Observação: os comandos a seguir são válidos somente para sistemas operacionais Linux e Unix.
Para identificar as funções ou versões de funções que usam uma interface de rede, use o Lambda ENI Finder no site do GitHub.
Conclua as etapas a seguir:
-
Configure a AWS CLI com um perfil do AWS Identity and Access Management (AWS IAM) que tenha permissões para consultar interfaces do Lambda e de rede.
Importante: o Lambda usa as permissões no perfil de execução de uma função para excluir a interface de rede elástica Hyperplane. Exclua o perfil de execução somente após o Lambda excluir a interface de rede elástica Hyperplane. -
Para instalar o processador JSON da linha de comando jq, execute o seguinte comando:
sudo yum install jq -yObservação: para obter mais informações, consulte jq no site da jq.
-
Para instalar o Git, execute o seguinte comando:
sudo yum install git -yObservação: para mais informações, consulte Getting started - installing Git (Introdução - instalando o Git) no site do Git.
-
Para clonar o repositório aws-support-tools do GitHub, execute o seguinte comando:
git clone https://github.com/awslabs/aws-support-tools.gitObservação: para mais informações, consulte aws-support-tools no site do GitHub.
-
Para alterar o diretório para o local do Lambda ENI Finder, execute os seguintes comandos:
cd aws-support-tools cd Lambda cd FindEniMappings -
Para executar o Lambda ENI Finder para a interface de rede que você deseja excluir, execute o seguinte comando:
./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1Observação: substitua eni-0123456789abcef01 pelo ID da interface de rede e us-east-1 pela região da AWS em que a interface de rede está. Para mais informações, consulte Interfaces de rede gerenciadas pelo solicitante.
A saída retorna uma lista das funções e versões de funções do Lambda que usam a interface de rede na sua conta e região. Se precisar de alguma das funções ou versões de funções, não exclua a interface de rede.
Se a saída não listar nenhuma função ou versão de função, verifique se os seguintes serviços em sua conta usam a interface de rede:
- Amazon Managed Streaming for Apache Kafka (Amazon MSK)
- Apache Kafka autogerenciado
- Amazon MQ for ActiveMQ
- Amazon MQ for RabbitMQ
- Amazon DocumentDB (compatível com MongoDB)
Identificar mapeamentos da origem do evento que usam a interface de rede
Usar a AWS CLI
Conclua as etapas a seguir:
-
Configure a AWS CLI com um perfil do IAM que tenha permissões para consultar o Lambda, o Amazon MSK, o Amazon MQ e o Amazon DocumentDB.
Observação: o Lambda usa as permissões no perfil de execução da função associada ao mapeamento da origem do evento para excluir a interface de rede elástica Hyperplane. Exclua o perfil de execução somente após o Lambda excluir a interface de rede elástica Hyperplane. -
Para listar os mapeamentos da origem de evento, execute o seguinte comando list-event-source-mappings:
aws lambda list-event-source-mappings --query 'EventSourceMappings[?State != Disabled]' -
Verifique o campo EventSourceArn ou o campo SelfManagedEventSource para cada mapeamento da origem do evento.
Se o campo EventSourceArn contiver um nome do recurso da Amazon (ARN) para um cluster do MSK, um agente do Amazon MQ ou um cluster do Amazon DocumentDB, anote o ARN.
Para visualizar os detalhes do cluster ou do agente, execute um dos seguintes comandos baseados na origem do evento.
Para o Amazon MSK, execute o seguinte comando describe-cluster-v2:aws kafka describe-cluster-v2 --cluster-arn MSK_CLUSTER_ARNObservação: substitua MSK_CLUSTER_ARN pelo ARN do seu cluster do MSK.
Para o Amazon MQ, execute o seguinte comando describe-broker:aws mq describe-broker --broker-id MQ_BROKER_IDObservação: substitua MQ_BROKER_ID pelo seu ID de agente do Amazon MQ.
Para o Amazon DocumentDB, execute o seguinte comando describe-db-clusters:aws docdb describe-db-clusters --db-cluster-identifier DOCDB_CLUSTER_IDObservação: substitua DOCDB_CLUSTER_ID pelo seu ID de cluster do Amazon DocumentDB.
-
Na saída do comando, verifique se o cluster ou o agente usa os mesmos IDs de sub-rede e de grupo de segurança da interface de rede.
-
Se o campo SelfManagedEventSource existir, verifique se os IDs de sub-rede e de grupo de segurança da interface de rede estão listados em SourceAccessConfigurations no mapeamento da origem do evento.
Usar o console do Lambda
Observação: para verificar o mapeamento da origem do evento para o Apache Kafka autogerenciado, você deve usar o console do Lambda.
Conclua as etapas a seguir:
- Abra o console do Lambda.
- No painel de navegação, selecione Mapeamentos da origem do evento.
- Verifique a coluna Serviço da origem do evento para encontrar mapeamentos da origem do evento para apache kafka, docdb, msk ou mq.
- Para docdb, msk ou mq, anote o nome do cluster ou do agente em Recurso da origem do evento. Para o apache kafka, selecione o UUID do mapeamento da origem do evento e vá para a etapa 8.
- Use o console do Amazon MSK, do Amazon MQ ou do Amazon DocumentDB para pesquisar o nome do cluster ou do agente.
- Selecione o nome do cluster ou do agente para ver seus detalhes.
- Nas configurações de rede, verifique se o cluster ou agente está configurado para usar os mesmos IDs de sub-rede e de grupo de segurança da interface de rede.
- Selecione o ARN da origem do evento do seu serviço para visualizar a origem do evento e as configurações do serviço.
- Em Configurações de acesso à origem, verifique se os IDs de sub-rede e de grupo de segurança da interface de rede estão listados.
Excluir uma interface de rede criada pelo Lambda
Conclua as etapas a seguir:
- Execute o Lambda ENI Finder.
- Para cada versão não publicada da função do Lambda ($LATEST) listada, conclua uma das seguintes etapas:
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. - Para versões publicadas da função do Lambda, exclua cada uma.
Observação: como não é possível editar versões de funções publicadas, não é possível alterar a configuração da Amazon VPC. - Para cada mapeamento da origem do evento do Lambda que usa a interface de rede, desative ou exclua o mapeamento da origem do evento.
- Para verificar se a interface de rede não está mais em uso, execute o Lambda ENI Finder novamente.
O Lambda exclui automaticamente a interface de rede quando as duas afirmações a seguir são verdadeiras:
- A saída não lista outras funções ou versões de funções.
- O mapeamento da origem do evento não usa a interface de rede.
Encontrar e excluir scrapers
Se você associar suas interfaces de rede do Lambda aos scrapers do Amazon Managed Service for Prometheus, conclua as seguintes etapas:
-
Para identificar a configuração do scraper, execute o seguinte comando list-rule-groups-namespaces:
aws amp list-rule-groups-namespaces -
Para listar os scrapers em sua conta, execute o seguinte comando list-scrapers:
aws amp list-scrapers --region your-regionObservação: substitua your-region pela sua região.
-
Para excluir um scraper, execute o seguinte comando delete-scraper:
aws amp delete-scraper --scraper-id your-scraperIdObservação: substitua your-scraperId pelo ID do scraper. Aguarde de 5 a 10 minutos para que a exclusão do scraper seja concluída antes de prosseguir para a etapa 4.
-
Para excluir a ENI, execute o seguinte comando delete-network:
aws ec2 delete-network --your-network-interface-idObservação: substitua your-network-interface-id pelo ID da interface de rede.
Para mais informações, consulte Find and delete scrapers (Encontrar e excluir scrapers).
Informações relacionadas
How do I get more elastic network interfaces if I've reached the limit in an AWS Region? (Como obter mais interfaces de rede elásticas se eu atingi o limite em uma região da AWS?)
- Tópicos
- ServerlessCompute
- Tags
- AWS Lambda
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
feita há 7 meses