Direkt zum Inhalt

Warum kann ich eine von Lambda erstellte Elastic Network-Schnittstelle nicht trennen oder löschen?

Lesedauer: 6 Minute
0

Ich habe versucht, eine von AWS Lambda erstellte Elastic Network-Schnittstelle zu trennen oder zu löschen, ich erhalte jedoch eine Fehlermeldung.

Kurzbeschreibung

Du kannst eine Netzwerkschnittstelle nur über Lambda löschen. Wenn du die Ressourcen löschst, die die Netzwerkschnittstelle darstellt, trennt und löscht Lambda die Netzwerkschnittstelle für dich. Um ungenutzte Netzwerkschnittstellen zu löschen, verwendet Lambda die Ausführungsrolle der Funktionen, die die Netzwerkschnittstellen erstellt haben. Du kannst jedoch keine Netzwerkschnittstellen löschen, die eine Funktion oder Funktionsversion verwendet.

Lambda teilt Netzwerkschnittstellen für mehrere Funktionen und Zuordnungen von Ereignisquellen, die dieselbe Amazon Virtual Private Cloud (Amazon VPC)-Konfiguration haben. Um die Anzahl der Netzwerkschnittstellen zu reduzieren, die du im AWS-Konto verwendest, kannst du Netzwerkschnittstellen gemeinsam nutzen.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Identifizieren der Funktionen und Funktionsversionen, die die Netzwerkschnittstelle verwenden

Hinweis: Die folgenden Befehle sind nur für Linux- und Unix-Betriebssysteme.

Verwende Lambda ENI Finder auf der GitHub-Website, um die Funktionen oder Funktionsversionen zu ermitteln, die eine Netzwerkschnittstelle verwenden.

Führe die folgenden Schritte aus:

  1. Konfiguriere die AWS CLI mit einer AWS Identity and Access Management (IAM)-Rolle, die über Berechtigungen zum Abfragen von Lambda und Netzwerkschnittstellen verfügt.
    Wichtig: Lambda verwendet die Berechtigungen in der Ausführungsrolle einer Funktion, um eine Hyperplane Elastic Network-Schnittstelle zu löschen. Lösche die Ausführungsrolle erst, nachdem Lambda die Hyperplane Elastic Network-Schnittstelle gelöscht hat.

  2. Führe den folgenden Befehl aus, um den jq-Befehlszeilen-JSON-Prozessor zu installieren:

    sudo yum install jq -y

    Hinweis: Weitere Informationen findest du unterjq auf der jq-Website.

  3. Um Git zu installieren, führe den folgenden Befehl aus:

    sudo yum install git -y

    Hinweis: Weitere Informationen findest du unter Erste Schritte – Installation von Git auf der Git-Website.

  4. Führe den folgenden Befehl aus, um das GitHub-Repository aws-support-tools zu klonen:

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

    Hinweis: Weitere Informationen findest du unter aws-support-tools auf der GitHub-Website.

  5. Führe die folgenden Befehle aus, um das Verzeichnis in den Speicherort des Lambda ENI Finder zu ändern:

    cd aws-support-tools    
    cd Lambda  
    cd FindEniMappings
  6. Führe den folgenden Befehl aus, um den Lambda ENI Finder für die Netzwerkschnittstelle auszuführen, die du löschen möchtest:

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

    Hinweis: Ersetze eni-0123456789abcef01 durch die Netzwerkschnittstellen-ID und ersetze us-east-1 durch die AWS-Region, in der sich die Netzwerkschnittstelle befindet. Weitere Informationen findest du unter Vom Anforderer verwaltete Netzwerkschnittstellen.

Die Ausgabe gibt eine Liste der Lambda-Funktionen und Funktionsversionen zurück, die die Netzwerkschnittstelle in deinem Konto und deiner Region verwenden. Wenn du eine dieser Funktionen oder Funktionsversionen benötigst, lösche die Netzwerkschnittstelle nicht.

Wenn in der Ausgabe keine Funktionen oder Funktionsversionen aufgeführt sind, überprüfe, ob die folgenden Services im Konto die Netzwerkschnittstelle verwenden:

  • Amazon Managed Streaming für Apache Kafka (Amazon MSK)
  • Selbstverwalteter Apache Kafka
  • Amazon MQ für ActiveMQ
  • Amazon MQ für RabbitMQ
  • Amazon DocumentDB (mit MongoDB-Kompatibilität)

Identifizieren der Zuordnungen von Ereignisquellen, die die Netzwerkschnittstelle verwenden

Verwendung der AWS CLI

Führe die folgenden Schritte aus:

  1. Konfiguriere die AWS CLI mit einer IAM-Rolle, die über Berechtigungen zum Abfragen von Lambda, Amazon MSK, Amazon MQ und Amazon DocumentDB verfügt.
    Hinweis: Lambda verwendet die Berechtigungen in der Ausführungsrolle der Funktion, die mit der Zuordnung von Ereignisquellen verknüpft ist, um die Hyperplane Elastic Network-Schnittstelle zu löschen. Lösche die Ausführungsrolle erst, nachdem Lambda die Hyperplane Elastic Network-Schnittstelle gelöscht hat.

  2. Führe den folgenden Befehl list-event-source-mappings aus, um die Zuordnungen der Ereignisquellen aufzulisten:

    aws lambda list-event-source-mappings --query 'EventSourceMappings[?State != Disabled]'
  3. Überprüfe das Feld EventSourceArn oder das Feld SelfManagedEventSource für jede Zuordnung von Ereignisquellen.
    Wenn das EventSourceArn-Feld einen Amazon-Ressourcenname (ARN) für einen MSK-Cluster, Amazon MQ-Broker oder Amazon DocumentDB-Cluster enthält, notiere dir den ARN.
    Führe einen der folgenden Befehle basierend auf der Ereignisquelle aus, um die Cluster- oder Brokerdetails anzuzeigen.
    Führe für Amazon MSK den folgenden Befehl describe-cluster-v2 aus:

    aws kafka describe-cluster-v2 --cluster-arn MSK_CLUSTER_ARN

    Hinweis: Ersetze MSK_CLUSTER_ARN durch den MSK-Cluster-ARN.
    Führe für Amazon MQ den folgenden describe-broker-Befehl aus:

    aws mq describe-broker --broker-id MQ_BROKER_ID

    Hinweis: Ersetze MQ_BROKER_ID durch die Amazon MQ-Broker-ID.
    Führe für Amazon DocumentDB den folgenden Befehl describe-db-clusters aus:

    aws docdb describe-db-clusters --db-cluster-identifier DOCDB_CLUSTER_ID

    Hinweis: Ersetze DOCDB_CLUSTER_ID durch die Amazon DocumentDB-Cluster-ID.

  4. Prüfe in der Befehlsausgabe, ob der Cluster oder Broker dieselben Subnetz- und Sicherheitsgruppen-IDs wie die Netzwerkschnittstelle verwendet.

  5. Wenn das Feld SelfManagedEventSource vorhanden ist, überprüfe, ob die Subnetz- und Sicherheitsgruppen-IDs der Netzwerkschnittstelle in der Zuordnung von Ereignisquellen unter SourceAccessConfigurations aufgeführt sind.

Verwendung der Lambda-Konsole

Hinweis: Um die Zuordnung der Ereignisquellen für den selbstverwalteten Apache Kafka zu überprüfen, musst du die Lambda-Konsole verwenden.

Führe die folgenden Schritte aus:

  1. Öffne die Lambda-Konsole.
  2. Wähle im Navigationsbereich Zuordnung von Ereignisquellen aus.
  3. Suche in der Spalte Ereignisquellendienst nach den Zuordnungen der Ereignisquellen für apache kafka, docdb, msk oder mq.
  4. Notiere dir für docdb, msk oder mq den Cluster- oder Broker-Namen unter Ereignisquellenressource. Wähle für apache kafka die UUID der Ereignisquellenzuordnung und fahre dann mit Schritt 8 fort.
  5. Verwende die Konsole von Amazon MSK, Amazon MQ oder Amazon DocumentDB, um nach dem Cluster- oder Broker-Namen zu suchen.
  6. Wähle den Cluster- oder Broker-Namen, um dessen Details anzuzeigen.
  7. Stelle in den Netzwerkeinstellungen sicher, dass du den Cluster oder Broker so konfiguriert hast, dass er dieselben Subnetz- und Sicherheitsgruppen-IDs wie die Netzwerkschnittstelle verwendet.
  8. Wähle den Ereignisquelle ARN für deinen Service, um die Ereignisquelle und die Service-Konfigurationen anzuzeigen.
  9. Prüfe unter Konfiguration des Quellzugriffs, ob die Subnetz- und Sicherheitsgruppen-IDs der Netzwerkschnittstelle aufgeführt sind.

Löschen einer von Lambda erstellten Netzwerkschnittstelle

Führe die folgenden Schritte aus:

  1. Führe den Lambda ENI Finder aus.
  2. Führe für jede aufgeführte unveröffentlichte Lambda-Funktionsversion ($LATEST) einen der folgenden Schritte aus:
    Ändere die Amazon VPC-Konfiguration, um ein anderes Subnetz und eine andere Sicherheitsgruppe zu verwenden.
    -oder-
    Trenne die Funktion von der Amazon VPC.
  3. Lösche bei veröffentlichten Lambda-Funktionsversionen jede einzelne.
    Hinweis: Da du veröffentlichte Funktionsversionen nicht bearbeiten kannst, kannst du die Amazon VPC-Konfiguration nicht ändern.
  4. Deaktiviere für jede Lambda-Zuordnung von Ereignisquellen, die die Netzwerkschnittstelle verwendet, die Zuordnung von Ereignisquellen oder lösche sie.
  5. Führe den Lambda ENI Finder erneut aus, um zu überprüfen, ob die Netzwerkschnittstelle nicht mehr verwendet wird.

Lambda löscht die Netzwerkschnittstelle automatisch, wenn beide der folgenden Bedingungen zutreffen:

  • Die Ausgabe führt keine anderen Funktionen oder Funktionsversionen auf.
  • Die Zuordnung der Ereignisquelle verwendet nicht die Netzwerkschnittstelle.

Wichtig: Wenn du Amazon Managed Service für Prometheus-Scraper mit den Lambda-Netzwerkschnittstellen verknüpft hast, stelle sicher, dass du die Scraper finden und löschen.

Ähnliche Informationen

Wie erhalte ich elastischere Netzwerkschnittstellen, wenn ich den Grenzwert in einer AWS-Region erreicht habe?

AWS OFFICIALAktualisiert vor 6 Monaten