Wie installiere ich benutzerdefinierte Pakete in meiner Amazon MWAA-Umgebung?

Lesedauer: 3 Minute
0

Ich möchte benutzerdefinierte Pakete mit plugins.zip in meiner Amazon Managed Workflows for Apache Airflow (Amazon MWAA)-Umgebung installieren.

Kurzbeschreibung

Verwenden Sie die Dateien requirements.txt und plugins.zip, um Python-Bibliotheken in Amazon MWAA zu installieren. Wenn Sie die Datei requirements.txt verwenden, um Pakete zu installieren, werden die Pakete standardmäßig aus dem Python-Paketindex (von der PyPI-Website) installiert. Wenn Sie Bibliotheken (whl-Dateien) mit kompilierten Artefakten ausliefern, verwenden Sie die Datei plugins.zip, um diese Python-Wheels zu installieren.

Installieren Sie benutzerdefinierte Apache Airflow-Operatoren, -Hooks, -Sensoren oder -Schnittstellen mit der Datei plugins.zip. Diese Datei wird in die Backend-Amazon ECS Fargate-Container am Speicherort /usr/local/airflow/plugins/ geschrieben. Plugins können auch verwendet werden, um Umgebungsvariablen sowie Authentifizierungs- und Konfigurationsdateien wie .crt und .yaml zu exportieren.

Behebung

Bibliotheken mit Python-Wheels installieren

Ein Python-Wheel ist eine Paketdatei mit kompilierten Artefakten. Um dieses Paket zu installieren, platzieren Sie die Datei (.whl) in eine Datei plugins.zip und verweisen Sie dann auf diese Datei in requirements.txt. Wenn Sie die Umgebung aktualisieren, nachdem Sie die Datei .whl zur Datei plugins.zip hinzugefügt haben, wird die Datei .whl an den Speicherort /usr/local/airflow/plugins/ gesendet. Dieser Standort befindet sich in den zugrunde liegenden Fargate-Containern von Amazon Elastic Container Service (Amazon ECS).

Informationen zur Installation von Bibliotheken mit Python Wheels finden Sie unter Wie installiere ich Bibliotheken in meiner Amazon MWAA-Umgebung?

Benutzerdefinierte Operatoren, Hooks, Sensoren oder Schnittstellen installieren

Amazon MWAA unterstützt den integrierten Plugin-Manager von Apache Airflow, mit dem Sie benutzerdefinierte Apache Airflow-Operatoren, -Hook, -Sensoren oder -Schnittstellen verwenden können. Diese benutzerdefinierten Plugins werden in der Datei plugins.zip mit entweder einer flachen und einer verschachtelten Verzeichnisstruktur abgelegt. Beispiele für benutzerdefinierte Plugins finden Sie unter Beispiele für benutzerdefinierte Plugins.

Erstellen Sie ein benutzerdefiniertes Plugin, um Laufzeitumgebungsvariablen zu generieren

Sie können auch ein benutzerdefiniertes Plugin erstellen, das Umgebungsvariablen zur Laufzeit in Ihrer Amazon MWAA-Umgebung generiert. Verwenden Sie dann diese Umgebungsvariablen in Ihrem DAG-Code (Directed Acyclic Graph). Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Plugins, das Laufzeitumgebungsvariablen generiert.

PEM-, .crt- und Konfigurationsdateien exportieren

Wenn Sie nicht möchten, dass bestimmte Dateien kontinuierlich aktualisiert werden, wenn Ihre Umgebung ausgeführt wird, verwenden Sie plugins.zip, um diese Dateien zu versenden. Sie können auch Dateien platzieren, für die Sie Benutzern, die DAGs schreiben, keinen Zugriff gewähren müssen. Zu diesen Dateien gehören Zertifikatsdateien (.crt), PEM-Dateien und YAML-Konfigurationsdateien. Nachdem Sie die Dateien in plugins.zip gezippt haben, laden Sie plugins.zip auf S3 hoch. Aktualisieren Sie dann die Umgebung. Die Dateien werden mit den erforderlichen Zugriffsberechtigungen für den Zugriff auf /usr/local/airflow/plugins repliziert.

Führen Sie den folgenden Befehl aus, um benutzerdefinierte CA-Zertifikate in die Datei plugins.zip zu komprimieren:

$ zip plugins.zip ca-certificates.crt

Die Datei befindet sich jetzt unter /usr/local/airflow/plugins/ca-certificates.crt. Führen Sie den folgenden Befehl aus, um die Datei kube_config.yaml in die Datei plugins.zip zu komprimieren:

$ zip plugins.zip kube_config.yaml

Die Datei befindet sich jetzt unter /usr/local/airflow/plugins/kube_config.yaml.

Fehler beim Installationsvorgang beheben

Wenn Sie Probleme mit der Installation dieser Pakete haben, können Sie Ihre DAGs, benutzerdefinierten Plugins oder Python-Abhängigkeiten lokal mit aws-mwaa-local-runner testen.

Um Probleme bei der Installation von Python-Paketen mit der Datei plugins.zip zu beheben, können Sie die Protokolldatei (requirements_install_ip) entweder in den Apache Airflow Worker- oder Scheduler-Protokollgruppen anzeigen.

Wichtig: Es hat sich bewährt, die Python-Abhängigkeiten und die Datei plugins.zip mit dem Amazon MWAA-CLI-Hilfsprogramm (aws-mwaa-local-runner) zu testen, bevor Sie die Pakete oder die Datei plugins.zip in Ihrer Amazon MWAA-Umgebung installieren.

Ähnliche Informationen

Plugins

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten