Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Python-Abhängigkeiten installieren
Eine Python-Abhängigkeit ist jedes Paket oder jede Distribution, die nicht in der Apache Airflow-Basisinstallation für Ihre Apache Airflow-Version in Ihrer Amazon Managed Workflows for Apache Airflow-Umgebung enthalten ist. In diesem Thema werden die Schritte zur Installation von Apache Airflow-Python-Abhängigkeiten in Ihrer Amazon MWAA-Umgebung mithilfe einer requirements.txt Datei in Ihrem Amazon S3-Bucket beschrieben.
Inhalt
Voraussetzungen
Sie benötigen Folgendes, bevor Sie die Schritte auf dieser Seite ausführen können.
-
Berechtigungen — Ihr Administrator AWS-Konto muss Ihnen Zugriff auf die AmazonMWAAFullConsoleAccess Zugriffskontrollrichtlinie für Ihre Umgebung gewährt haben. Darüber hinaus muss Ihrer Amazon MWAA-Umgebung von Ihrer Ausführungsrolle der Zugriff auf die von Ihrer Umgebung verwendeten AWS Ressourcen gestattet werden.
-
Zugriff — Wenn Sie Zugriff auf öffentliche Repositorys benötigen, um Abhängigkeiten direkt auf dem Webserver zu installieren, muss Ihre Umgebung für den Zugriff auf öffentliche Netzwerkwebserver konfiguriert sein. Weitere Informationen finden Sie unter Apache-Airflow-Zugriffsmodi.
-
Amazon S3-Konfiguration — Der Amazon S3-Bucket, in dem Ihre DAGs, benutzerdefinierten Plug-ins und Python-Abhängigkeiten gespeichert werden
plugins.zip,requirements.txtmuss so konfiguriert sein, dass der öffentliche Zugriff gesperrt und die Versionierung aktiviert ist.
Funktionsweise
Auf Amazon MWAA installieren Sie alle Python-Abhängigkeiten, indem Sie eine requirements.txt Datei in Ihren Amazon S3-Bucket hochladen und dann bei jeder Aktualisierung der Datei die Version der Datei auf der Amazon MWAA-Konsole angeben. Amazon MWAA wird ausgeführt, pip3 install -r requirements.txt um die Python-Abhängigkeiten auf dem Apache Airflow-Scheduler und jedem der Worker zu installieren.
Um Python-Abhängigkeiten in Ihrer Umgebung auszuführen, müssen Sie drei Dinge tun:
-
Erstellen Sie lokal eine
requirements.txtDatei. -
Laden Sie die lokale Datei
requirements.txtin Ihren Amazon S3-Bucket hoch. -
Geben Sie die Version dieser Datei im Feld Anforderungsdatei auf der Amazon MWAA-Konsole an.
Anmerkung
Wenn Sie zum ersten Mal einen requirements.txt Bucket erstellen und in Ihren Amazon S3-Bucket hochladen, müssen Sie auch den Pfad zu der Datei auf der Amazon MWAA-Konsole angeben. Sie müssen diesen Schritt nur einmal ausführen.
Überblick über die Python-Abhängigkeiten
Sie können Apache Airflow-Extras und andere Python-Abhängigkeiten aus dem Python-Paketindex (PyPi.org), Python-Wheels (.whl) oder Python-Abhängigkeiten installieren, die auf einem privaten PyPi/PEP-503 kompatiblen Repo in Ihrer Umgebung gehostet werden.
Standort- und Größenbeschränkungen für Python-Abhängigkeiten
Der Apache Airflow-Scheduler und die Worker suchen in der requirements.txt Datei nach den Paketen und die Pakete werden in der Umgebung unter installiert. /usr/local/airflow/.local/bin
-
Größenbeschränkung. Wir empfehlen eine
requirements.txtDatei, die auf Bibliotheken verweist, deren Gesamtgröße weniger als 1 GB beträgt. Je mehr Bibliotheken Amazon MWAA installieren muss, desto länger dauert der Start in einer Umgebung. Amazon MWAA begrenzt die Größe der installierten Bibliotheken zwar nicht explizit, aber wenn Abhängigkeiten nicht innerhalb von zehn Minuten installiert werden können, kommt es beim Fargate-Dienst zu einem Timeout und es wird versucht, die Umgebung in einen stabilen Zustand zurückzusetzen.
Eine Datei requirements.txt wird erstellt
In den folgenden Schritten werden die Schritte beschrieben, die wir empfehlen, um eine Datei requirements.txt lokal zu erstellen.
Erster Schritt: Testen Sie Python-Abhängigkeiten mit dem Amazon MWAA-CLI-Hilfsprogramm
-
Das Befehlszeilenschnittstellen-Dienstprogramm (CLI) repliziert lokal eine Amazon Managed Workflows für die Apache Airflow-Umgebung.
-
Die CLI erstellt lokal ein Docker-Container-Image, das einem Amazon MWAA-Produktionsimage ähnelt. Sie können dies verwenden, um eine lokale Apache Airflow-Umgebung auszuführen, um DAGs, benutzerdefinierte Plugins und Abhängigkeiten zu entwickeln und zu testen, bevor Sie sie auf Amazon MWAA bereitstellen.
-
Informationen zum Ausführen der CLI finden Sie unter aws-mwaa-docker-images on. https://github.com/aws/amazon-mwaa-docker-images
GitHub
Schritt zwei: Erstellen Sie die Datei requirements.txt
Der folgende Abschnitt beschreibt, wie Sie Python-Abhängigkeiten aus dem Python-Paketindex requirements.txt Datei angeben.
requirements.txt wird auf Amazon S3 hochgeladen
Sie können die Amazon S3-Konsole oder die AWS Command Line Interface (AWS CLI) verwenden, um eine requirements.txt Datei in Ihren Amazon S3-Bucket hochzuladen.
Verwendung der AWS CLI
AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können. Um die Schritte auf dieser Seite abzuschließen, benötigen Sie Folgendes:
Zum Hochladen mit dem AWS CLI
-
Verwenden Sie den folgenden Befehl, um alle Ihre Amazon S3-Buckets aufzulisten.
aws s3 ls -
Verwenden Sie den folgenden Befehl, um die Dateien und Ordner im Amazon S3-Bucket für Ihre Umgebung aufzulisten.
aws s3 ls s3://YOUR_S3_BUCKET_NAME -
Mit dem folgenden Befehl wird eine
requirements.txtDatei in einen Amazon S3-Bucket hochgeladen.aws s3 cp requirements.txt s3://amzn-s3-demo-bucket/requirements.txt
Verwenden der Amazon S3-Konsole
Die Amazon S3-Konsole ist eine webbasierte Benutzeroberfläche, mit der Sie die Ressourcen in Ihrem Amazon S3-Bucket erstellen und verwalten können.
Um mit der Amazon S3-Konsole hochzuladen
-
Öffnen Sie die Seite
Umgebungen auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie den S3-Bucket-Link im DAG-Code im S3-Bereich aus, um Ihren Speicher-Bucket in der Konsole zu öffnen.
-
Klicken Sie auf Upload.
-
Wählen Sie Datei hinzufügen.
-
Wählen Sie die lokale Kopie von aus
requirements.txtund wählen Sie Hochladen.
Installieren Sie Python-Abhängigkeiten in Ihrer Umgebung
In diesem Abschnitt wird beschrieben, wie Sie die Abhängigkeiten installieren, die Sie in Ihren Amazon S3-Bucket hochgeladen haben, indem Sie den Pfad zur Datei requirements.txt angeben und bei jeder Aktualisierung die Version der Datei requirements.txt angeben.
Angabe des Pfads zu requirements.txt auf der Amazon MWAA-Konsole (das erste Mal)
Wenn Sie zum ersten Mal einen requirements.txt erstellen und in Ihren Amazon S3-Bucket hochladen, müssen Sie auch den Pfad zu der Datei auf der Amazon MWAA-Konsole angeben. Sie müssen diesen Schritt nur einmal ausführen.
-
Öffnen Sie die Seite
Umgebungen auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie Bearbeiten aus.
-
Wählen Sie im Bereich „DAG-Code“ im Bereich „Amazon S3“ neben dem Feld „Anforderungsdatei — optional“ die Option „S3 durchsuchen“ aus.
-
Wählen Sie die
requirements.txtDatei in Ihrem Amazon S3-Bucket aus. -
Wählen Sie Choose (Auswählen) aus.
-
Wählen Sie Weiter, Umgebung aktualisieren.
Sie können sofort nach Abschluss der Aktualisierung Ihrer Umgebung mit der Verwendung der neuen Pakete beginnen.
Angabe der Version von requirements.txt auf der Amazon MWAA-Konsole
Sie müssen die Version Ihrer requirements.txt Datei in der Amazon MWAA-Konsole jedes Mal angeben, wenn Sie eine neue Version Ihrer Datei requirements.txt in Ihren Amazon S3-Bucket hochladen.
-
Öffnen Sie die Seite
Umgebungen auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie Bearbeiten aus.
-
Wählen Sie im DAG-Code im Amazon S3-Bereich eine
requirements.txtVersion in der Dropdownliste aus. -
Wählen Sie Weiter, Umgebung aktualisieren.
Sie können sofort nach Abschluss der Aktualisierung Ihrer Umgebung mit der Verwendung der neuen Pakete beginnen.
Zugreifen auf Protokolle für Ihre requirements.txt
Sie können die Apache Airflow-Protokolle für den Scheduler einsehen, der Ihre Workflows plant und Ihren Ordner analysiert. dags In den folgenden Schritten wird beschrieben, wie Sie die Protokollgruppe für den Scheduler auf der Amazon MWAA-Konsole öffnen und in der Logs-Konsole auf die Apache Airflow-Protokolle zugreifen. CloudWatch
So greifen Sie auf Protokolle für eine Datei requirements.txt zu
-
Öffnen Sie die Seite
Umgebungen auf der Amazon MWAA-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie im Bereich Überwachung die Airflow Scheduler-Protokollgruppe aus.
-
Wählen Sie das
requirements_install_ipLog in Log Streams aus. -
Weitere Informationen finden Sie in der Liste der Pakete, die in der Umgebung unter installiert wurden
/usr/local/airflow/.local/bin. Beispiel:Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1)) Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2)) -
Prüfen Sie die Liste der Pakete und ob bei einem dieser Pakete während der Installation ein Fehler aufgetreten ist. Wenn etwas schief gelaufen ist, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
2021-03-05T14:34:42.731-07:00 No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4)) No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
Als nächstes
Testen Sie Ihre DAGs, benutzerdefinierten Plugins und Python-Abhängigkeiten lokal mit https://github.com/aws/amazon-mwaa-docker-images