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. Auf dieser Seite werden die Schritte zur Installation von Apache Airflow Python-Abhängigkeiten in Ihrer MWAA Amazon-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 abschließen können.
-
Berechtigungen — Ihr AWS Konto muss von Ihrem Administrator Zugriff auf die mazonMWAAFullConsoleAccessA-Zugriffskontrollrichtlinie für Ihre Umgebung erhalten haben. Darüber hinaus muss Ihrer MWAA Amazon-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 Netzwerk-Webserver konfiguriert sein. Weitere Informationen finden Sie unter Apache Airflow-Zugriffsmodi.
-
Amazon S3 S3-Konfiguration — Der Amazon S3 S3-BucketDAGs, in dem Ihre benutzerdefinierten Plugins und Python-Abhängigkeiten gespeichert werden
plugins.zip
,requirements.txt
muss mit geblocktem öffentlichem Zugriff und aktivierter Versionierung konfiguriert sein.
Funktionsweise
Bei Amazon installieren Sie alle Python-AbhängigkeitenMWAA, indem Sie eine requirements.txt
Datei in Ihren Amazon S3 S3-Bucket hochladen und dann bei jeder Aktualisierung der Datei die Version der Datei auf der MWAA Amazon-Konsole angeben. Amazon installiert MWAA pip3 install -r requirements.txt
die Python-Abhängigkeiten auf dem Apache Airflow Scheduler und jedem der Worker.
Um Python-Abhängigkeiten in Ihrer Umgebung auszuführen, müssen Sie drei Dinge tun:
-
Erstellen Sie lokal eine
requirements.txt
Datei. -
Laden Sie das Local
requirements.txt
in Ihren Amazon S3 S3-Bucket hoch. -
Geben Sie die Version dieser Datei im Feld Anforderungsdatei auf der MWAA Amazon-Konsole an.
Anmerkung
Wenn Sie zum ersten Mal einen requirements.txt
Bucket erstellen und in Ihren Amazon S3 S3-Bucket hochladen, müssen Sie auch den Pfad zu der Datei auf der MWAA Amazon-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 Package Index (PyPi.org), Python Wheels (.whl
) oder Python-Abhängigkeiten installieren, die auf einem privaten PyPi/PEP-503-konformen Repo in Ihrer Umgebung gehostet werden.
Standort- und Größenbeschränkungen für Python-Abhängigkeiten
Der Apache Airflow Scheduler und die Workers suchen nach den Paketen in der requirements.txt
Datei und die Pakete werden in der Umgebung unter installiert. /usr/local/airflow/.local/bin
-
Größenbeschränkung. Wir empfehlen eine
requirements.txt
Datei, die auf Bibliotheken verweist, deren Gesamtgröße weniger als 1 GB beträgt. Je mehr Bibliotheken Amazon installieren MWAA muss, desto länger ist die Startzeit in einer Umgebung. Amazon begrenzt zwar MWAA nicht explizit die Größe der installierten Bibliotheken, aber wenn Abhängigkeiten nicht innerhalb von zehn Minuten installiert werden können, führt der Fargate-Service zu einem Timeout und versucht, die Umgebung auf einen stabilen Zustand zurückzusetzen.
Eine Datei requirements.txt erstellen
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 MWAA CLI Amazon-Hilfsprogramm
-
Das Befehlszeilenprogramm interface (CLI) repliziert eine Amazon Managed Workflows for Apache Airflow-Umgebung lokal.
-
Das CLI erstellt lokal ein Docker-Container-Image, das einem MWAA Amazon-Produktions-Image ähnelt. Auf diese Weise können Sie eine lokale Apache Airflow-Umgebung ausführen, um benutzerdefinierte Plugins und Abhängigkeiten zu entwickeln und zu testenDAGs, bevor Sie sie auf Amazon MWAA bereitstellen.
-
Informationen zum CLI Ausführen von finden Sie aws-mwaa-local-runner
unter GitHub.
Schritt zwei: Erstellen Sie das requirements.txt
Im folgenden Abschnitt wird beschrieben, wie Python-Abhängigkeiten aus dem Python-Paketindexrequirements.txt
Datei angegeben werden.
Auf Amazon requirements.txt
S3 hochladen
Sie können die Amazon S3 S3-Konsole oder die AWS Command Line Interface (AWS CLI) verwenden, um eine requirements.txt
Datei in Ihren Amazon S3 S3-Bucket hochzuladen.
Mit dem AWS CLI
The 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 S3-Buckets aufzulisten.
aws s3 ls
-
Verwenden Sie den folgenden Befehl, um die Dateien und Ordner im Amazon S3 S3-Bucket für Ihre Umgebung aufzulisten.
aws s3 ls s3://
YOUR_S3_BUCKET_NAME
-
Der folgende Befehl lädt eine
requirements.txt
Datei in einen Amazon S3 S3-Bucket hoch.aws s3 cp requirements.txt s3://
YOUR_S3_BUCKET_NAME
/requirements.txt
Verwenden der Amazon S3-Konsole
Die Amazon S3 S3-Konsole ist eine webbasierte Benutzeroberfläche, mit der Sie die Ressourcen in Ihrem Amazon S3 S3-Bucket erstellen und verwalten können.
Um mit der Amazon S3 S3-Konsole hochzuladen
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie im Bereich DAGCode im Bereich S3 den Link S3-Bucket aus, um Ihren Speicher-Bucket auf der Amazon S3 S3-Konsole zu öffnen.
-
Klicken Sie auf Hochladen.
-
Wählen Sie Datei hinzufügen.
-
Wählen Sie die lokale Kopie Ihres aus
requirements.txt
und wählen Sie Hochladen.
Installation von Python-Abhängigkeiten in Ihrer Umgebung
In diesem Abschnitt wird beschrieben, wie Sie die Abhängigkeiten, die Sie in Ihren Amazon S3 S3-Bucket hochgeladen haben, installieren, indem Sie den Pfad zur Datei requirements.txt und bei jeder Aktualisierung die Version der Datei requirements.txt angeben.
Angabe des Pfads zu requirements.txt
auf der MWAA Amazon-Konsole (beim ersten Mal)
Wenn Sie zum ersten Mal einen requirements.txt
Bucket erstellen und in Ihren Amazon S3 S3-Bucket hochladen, müssen Sie auch den Pfad zu der Datei auf der MWAA Amazon-Konsole angeben. Sie müssen diesen Schritt nur einmal ausführen.
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie im Bereich DAGCode in Amazon S3 neben dem Feld Anforderungsdatei — optional die Option S3 durchsuchen aus.
-
Wählen Sie die
requirements.txt
Datei in Ihrem Amazon S3 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 requirements.txt
Version auf der MWAA Amazon-Konsole
Sie müssen jedes Mal, wenn Sie eine neue Version Ihrer requirements.txt
Datei requirements.txt
in Ihren Amazon S3-Bucket hochladen, die Version Ihrer Datei auf der MWAA Amazon-Konsole angeben.
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie im Bereich DAGCode in Amazon S3 eine
requirements.txt
Version aus 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.
Logs für Ihr anzeigen requirements.txt
Sie können Apache Airflow-Protokolle für den Scheduler einsehen, Ihre Workflows planen und Ihren Ordner analysieren. dags
In den folgenden Schritten wird beschrieben, wie Sie die Protokollgruppe für den Scheduler auf der MWAA Amazon-Konsole öffnen und Apache Airflow-Protokolle in der CloudWatch Logs-Konsole anzeigen.
Um Protokolle für ein anzuzeigen requirements.txt
-
Öffnen Sie die Seite Umgebungen
auf der MWAA Amazon-Konsole. -
Wählen Sie eine Umgebung aus.
-
Wählen Sie im Bereich Überwachung die Protokollgruppe Airflow Scheduler aus.
-
Wählen Sie unter
requirements_install_ip
Log-Streams die Option Log Streams aus. -
Sie sollten die Liste der Pakete, die in der Umgebung installiert wurden, unter finden
/usr/local/airflow/.local/bin
. Beispielsweise: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))
-
Überprüfen Sie die Liste der Pakete und ob bei der Installation eines dieser Pakete ein Fehler aufgetreten ist. Wenn etwas schief gelaufen ist, wird möglicherweise ein Fehler ähnlich dem folgenden angezeigt:
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 dem aws-mwaa-local-runner
on GitHub.