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

Lesedauer: 6 Minute
0

Wenn ich versuche, eine von AWS Lambda erstellte Elastic Network-Schnittstelle zu trennen oder zu löschen, erhalte ich 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 im AWS-Konto verwendet werden, kannst du Netzwerkschnittstellen gemeinsam nutzen.

Lösung

Identifizieren der Funktionen und Funktionsversionen, die die Netzwerkschnittstelle verwenden

Hinweis:

Verwende das Bash-Skript Lambda ENI Finder auf der GitHub-Website, um die Funktionen oder Funktionsversionen zu ermitteln, die derzeit eine Netzwerkschnittstelle verwenden. Weitere Informationen findest du unter Vom Anforderer verwaltete Netzwerkschnittstellen.

Führe die folgenden Schritte aus:

  1. Konfiguriere die AWS CLI mit einer AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle, die über Berechtigungen zum Abfragen von Lambda und Netzwerkschnittstellen verfügt. Weitere Informationen findest du unter Lambda-Funktionen den Zugriff auf Ressourcen in einer Amazon VPC gewähren.
    Hinweis: Lambda verwendet die Berechtigungen in der Ausführungsrolle einer Funktion, 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. Installiere den Befehlszeilen-JSON-Prozessor jq:

    $ sudo yum install jq -y

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

  3. Stelle sicher, dass Git installiert ist:

    $ sudo yum install git -y

    Wenn Git nicht installiert ist, findest du weitere Informationen unter Getting started – installing Git (Erste Schritte – Installation von Git) auf der Git-Website.

  4. Klone das GitHub-Repository aws-support-tools:

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

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

  5. Ändere das Verzeichnis in den Speicherort von Lambda ENI Finder:

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

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

    Hinweis: Ersetze im vorherigen Befehl eni-0123456789abcef01 durch die Netzwerkschnittstellen-ID. Du findest die ID auf der Seite Netzwerkschnittstellen der Amazon Elastic Compute Cloud (Amazon EC2)-Konsole. Ersetze us-east-1 durch die AWS-Region, in der sich die Netzwerkschnittstelle befindet.

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 ActiveMQ
  • Amazon RabbitMQ
  • Amazon DocumentDB

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 Befehl list-event-source-mappings aus:

    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 ARN für einen Amazon MSK-Cluster, Amazon MQ-Broker oder Amazon DocumentDB-Cluster enthält, notiere dir den ARN.
    Führe einen der folgenden Befehle für die Ereignisquelle aus, um die Cluster- oder Brokerdetails anzuzeigen:

    aws kafka describe-cluster-v2 --cluster-arn MSK_CLUSTER_ARN
    aws mq describe-broker --broker-id MQ_BROKER_ID
    aws docdb describe-db-clusters --db-cluster-identifier DOCDB_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

Du kannst auch auf der Seite Zuordnungen von Ereignisquellen in der Lambda-Konsole nach Zuordnungen von Ereignisquellen für die folgenden Services suchen:

  • Amazon MSK
  • Selbstverwalteter Apache Kafka
  • Amazon ActiveMQ
  • Amazon RabbitMQ
  • Amazon DocumentDB

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.
  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 der Cluster oder Broker so konfiguriert ist, dass er dieselben Subnetz- und Sicherheitsgruppen-IDs wie die Netzwerkschnittstelle verwendet.
  8. Wähle für „apache kafka“ die Zuordnung von Ereignisquellen UUID.
  9. Wähle den Ereignisquelle ARN für deinen Service, um die Ereignisquelle und die Service-Konfigurationen anzuzeigen.
  10. 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.

Ähnliche Informationen

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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten