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

Letzte Aktualisierung: 03.03.2022

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

Kurzbeschreibung

Sie können Python-Bibliotheken in Amazon MWAA mithilfe der Dateien requirements.txt und plugins.zip installieren. Wenn Sie Pakete mit der Datei requirements.txt installieren, werden die Pakete standardmäßig von Pypi.org installiert. Wenn Sie jedoch Bibliotheken (.whl-Dateien) mit kompilierten Artefakten ausliefern müssen, können Sie diese Python-Wheels mithilfe der Datei plugins.zip installieren.

Mithilfe der Datei plugins.zip können Sie benutzerdefinierte Apache Airflow-Operatoren, -Hooks, -Sensoren oder -Schnittstellen installieren, indem Sie einfach Dateien in einer Datei plugins.zip ablegen. Diese Datei wurde in das Backend Amazon ECS-Fargate-Container am Standort /usr/local/airflow/plugins/ geschrieben. Plug-Ins können auch verwendet werden, um Umgebungsvariablen und Authentifizierungs- und Konfigurationsdateien wie .crt und .yaml zu exportieren.

Auflösung

Installieren von Bibliotheken mit Python-Wheels

Ein Python-Wheel ist eine Paketdatei mit kompilierten Artefakten. Sie können dieses Paket installieren, indem Sie die Datei (.whl) zur Datei plugins.zip hinzufügen und dann in der Datei requirements.txt auf diese Datei verweisen. Wenn Sie die Umgebung aktualisieren, nachdem Sie die .whl-Datei in die Datei plugins.zip hinzugefügt haben, wird die.whl-Datei an den Speicherort /usr/local/airflow/plugins/ in den zugrunde liegenden Fargate-Containern des Amazon Elastic Container Service (Amazon ECS) übertragen. Um Python-Wheels zu installieren, tun Sie Folgendes:

1.    Erstellen Sie die Datei plugins.zip:

Erstellen Sie ein lokales Airflow-Plug-in-Verzeichnis auf Ihrem System, indem Sie den folgenden Befehl ausführen:

$ mkdir plugins

Kopieren Sie die .whl-Datei in das Plug-Ins-Verzeichnis, das Sie erstellt haben.

Passen Sie das Verzeichnis so an, dass es auf Ihr lokales Airflow-Plug-Ins-Verzeichnis zeigt, indem Sie den folgenden Befehl ausführen:

$ cd plugins
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Inhalt über Ausführungsberechtigungen verfügt:

plugins$ chmod -R 755

Komprimieren Sie den Inhalt in Ihrem Plug-In-Ordner, indem Sie den folgenden Befehl ausführen:

plugins$ zip -r plugins.zip

2.    Fügen Sie den Pfad der .whl-Datei in die Datei requirements.txt ein (Beispiel: /usr/local/airflow/plugins/example_wheel.whl).

Hinweis: Denken Sie daran, Versioning für Ihren Amazon Simple Storage Service-Bucket (Amazon S3) zu aktivieren.

3.    Laden Sie die Dateien plugins.zip und requirements.txt in einen S3-Bucket hoch (Beispiel: s3://example-bucket/plugins.zip).

4.    Um die Umgebung zu bearbeiten, öffnen Sie die Seite Umgebungen in der Amazon MWAA-Konsole.

5.    Wählen Sie die Umgebung aus der Liste aus, und wählen Sie dann Bearbeiten aus.

6.    Führen Sie auf der Seite Details angeben im Abschnitt DAG-Code in Amazon S3 einen der folgenden Schritte basierend auf Ihrem Anwendungsfall aus:

Hinweis: Wenn Sie die Datei plugins.zip oder requirements.txt zum ersten Mal in Ihre Umgebung hochladen, wählen Sie die Datei und dann die Version aus. Wenn Sie die Datei bereits hochgeladen und kürzlich aktualisiert haben, können Sie die Auswahl der Datei überspringen und nur die Version auswählen.

Wählen Sie S3 durchsuchen im Feld Plug-Ins-Datei – optional.

Wählen Sie die Datei plugins.zip in Ihrem Amazon S3-Bucket aus und klicken Sie dann auf Auswählen.

Wählen Sie für Version auswählen unter Plug-Ins-Datei – optional die neueste Version der Datei aus, die Sie hochgeladen haben.

--oder--

Wählen Sie S3 durchsuchen unter Requirements-Datei – optional.

Wählen Sie die Datei requirements.txt in Ihrem Amazon S3-Bucket aus und klicken Sie dann auf Auswählen.

Wählen Sie für Version auswählen unter Requirements-Datei – optional die neueste Version der Datei aus, die Sie hochgeladen haben.

7.    Wählen Sie Weiter und dann Speichern aus.

Installieren Sie benutzerdefinierte Operatoren, Hooks, Sensoren oder Schnittstellen

Amazon MWAA unterstützt den integrierten Plug-In-Manager von Apache Airflow, mit dem Sie benutzerdefinierte Apache Airflow-Operatoren, Hook-Sensoren oder Schnittstellen verwenden können. Diese benutzerdefinierten Plug-Ins können in der Datei plugins.zip sowohl mit einer flachen als auch mit einer verschachtelten Verzeichnisstruktur platziert werden. Einige Beispiele für benutzerdefinierte Plug-Ins finden Sie unter Beispiele für benutzerdefinierte Plug-Ins.

Erstellen Sie ein benutzerdefiniertes Plug-In zum Generieren von Laufzeitumgebungsvariablen

Sie können auch ein benutzerdefiniertes Plug-In erstellen, das zur Laufzeit Umgebungsvariablen in Ihrer Amazon MWAA-Umgebung generiert. Anschließend können Sie diese Umgebungsvariablen in Ihrem DAG-Code verwenden. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Plug-Ins, das Laufzeitumgebungsvariablen generiert.

Exportieren Sie PEM-, .crt- und Konfigurationsdateien

Wenn Sie nicht benötigen, dass bestimmte Dateien während der Ausführung der Umgebung ständig aktualisiert werden, können Sie plugins.zip verwenden, 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 (Beispiel: Zertifikat- (.crt), PEM- und YAML-Konfigurationsdateien). Nachdem Sie diese Dateien in plugins.zip komprimiert haben, laden Sie die Datei plugins.zip auf S3 hoch, und aktualisieren Sie dann die Umgebung. Die Dateien werden mit den erforderlichen Berechtigungen für den Zugriff auf /usr/local/airflow/plugins repliziert.

Sie können benutzerdefinierte CA-Zertifikate in die Datei plugins.zip komprimieren, indem Sie den folgenden Befehl ausführen:

$ zip plugins.zip ca-certificates.crt
Die Datei befindet sich jetzt unter /usr/local/airflow/plugins/ca-certificates.crt.

Um die kube_config.yaml in die Datei plugins.zip zu komprimieren, führen Sie den folgenden Befehl aus:

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

Probleme beim Installationsvorgang beheben

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

Um Probleme bei der Installation von Python-Paketen mithilfe 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 empfiehlt sich, die Python-Abhängigkeiten und die Datei plugins.zip mit dem Amazon MWAA-CLI-Dienstprogramm (aws-mwaa-local-runner) zu testen, bevor Sie die Pakete oder die Datei plugins.zip in Ihrer Amazon MWAA-Umgebung installieren.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?