Ir para o conteúdo

Por que não consigo separar ou excluir uma interface de rede elástica criada pelo Lambda?

8 minuto de leitura
0

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:

  1. 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.

  2. Para instalar o processador JSON da linha de comando jq, execute o seguinte comando:

    sudo yum install jq -y

    Observação: para obter mais informações, consulte jq no site da jq.

  3. Para instalar o Git, execute o seguinte comando:

    sudo yum install git -y

    Observação: para mais informações, consulte Getting started - installing Git (Introdução - instalando o Git) no site do Git.

  4. Para clonar o repositório aws-support-tools do GitHub, execute o seguinte comando:

    git clone https://github.com/awslabs/aws-support-tools.git

    Observação: para mais informações, consulte aws-support-tools no site do GitHub.

  5. Para alterar o diretório para o local do Lambda ENI Finder, execute os seguintes comandos:

    cd aws-support-tools    cd Lambda  
    cd FindEniMappings
  6. 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-1

    Observaçã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:

  1. 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.

  2. 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]'
  3. 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_ARN

    Observaçã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_ID

    Observaçã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_ID

    Observação: substitua DOCDB_CLUSTER_ID pelo seu ID de cluster do Amazon DocumentDB.

  4. 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.

  5. 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:

  1. Abra o console do Lambda.
  2. No painel de navegação, selecione Mapeamentos da origem do evento.
  3. Verifique a coluna Serviço da origem do evento para encontrar mapeamentos da origem do evento para apache kafka, docdb, msk ou mq.
  4. 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.
  5. Use o console do Amazon MSK, do Amazon MQ ou do Amazon DocumentDB para pesquisar o nome do cluster ou do agente.
  6. Selecione o nome do cluster ou do agente para ver seus detalhes.
  7. 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.
  8. Selecione o ARN da origem do evento do seu serviço para visualizar a origem do evento e as configurações do serviço.
  9. 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:

  1. Execute o Lambda ENI Finder.
  2. 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.
  3. 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.
  4. Para cada mapeamento da origem do evento do Lambda que usa a interface de rede, desative ou exclua o mapeamento da origem do evento.
  5. 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:

  1. Para identificar a configuração do scraper, execute o seguinte comando list-rule-groups-namespaces:

    aws amp list-rule-groups-namespaces
  2. Para listar os scrapers em sua conta, execute o seguinte comando list-scrapers:

    aws amp list-scrapers --region your-region

    Observação: substitua your-region pela sua região.

  3. Para excluir um scraper, execute o seguinte comando delete-scraper:

    aws amp delete-scraper --scraper-id your-scraperId

    Observaçã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.

  4. Para excluir a ENI, execute o seguinte comando delete-network:

    aws ec2 delete-network --your-network-interface-id

    Observaçã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?)

AWS OFICIALAtualizada há 9 meses
Sem comentários