

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
<a name="working-dags-dependencies"></a>

Eine Python-Abhängigkeit ist jedes Paket oder jede Distribution, die nicht in der Apache Airflow-Basisinstallation für Ihre Apache Airflow Airflow-Version in Ihrer Amazon Managed Workflows for Apache Airflow 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 S3-Bucket beschrieben.

**Contents**
+ [Voraussetzungen](#working-dags-dependencies-prereqs)
+ [Funktionsweise](#working-dags-dependencies-how)
+ [Überblick über die Python-Abhängigkeiten](#working-dags-dependencies-overview)
  + [Standort- und Größenbeschränkungen für Python-Abhängigkeiten](#working-dags-dependencies-quota)
+ [Eine Datei requirements.txt erstellen](#working-dags-dependencies-test-create)
  + [Schritt eins: Testen Sie Python-Abhängigkeiten mit dem Amazon MWAA CLI-Hilfsprogramm](#working-dags-dependencies-cli-utility)
  + [Schritt zwei: Erstellen Sie das `requirements.txt`](#working-dags-dependencies-syntax-create)
+ [Auf Amazon `requirements.txt` S3 hochladen](#configuring-dag-dependencies-upload)
  + [Mit dem AWS CLI](#configuring-dag-dependencies-upload-cli)
  + [Verwenden der Amazon S3-Konsole](#configuring-dag-dependencies-upload-console)
+ [Installation von Python-Abhängigkeiten in Ihrer Umgebung](#configuring-dag-dependencies-installing)
  + [Angeben des Pfads zu `requirements.txt` auf der Amazon MWAA-Konsole (beim ersten Mal)](#configuring-dag-dependencies-first)
  + [Angabe der `requirements.txt` Version auf der Amazon MWAA-Konsole](#working-dags-dependencies-mwaaconsole-version)
+ [Zugreifen auf Protokolle für Ihre `requirements.txt`](#working-dags-dependencies-logs)
+ [Als nächstes](#working-dags-dependencies-next-up)

## Voraussetzungen
<a name="working-dags-dependencies-prereqs"></a>

Sie benötigen Folgendes, bevor Sie die Schritte auf dieser Seite abschließen können.
+ **Berechtigungen** — Ihr Administrator AWS-Konto muss Ihnen Zugriff auf die [MWAAFullConsoleAccessAmazon-Zugriffskontrollrichtlinie](access-policies.md#console-full-access) für Ihre Umgebung gewährt haben. Darüber hinaus muss Ihrer Amazon MWAA-Umgebung von Ihrer [Ausführungsrolle](mwaa-create-role.md) 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](configuring-networking.md).
+ **Amazon S3 S3-Konfiguration** — Der [Amazon S3 S3-Bucket](mwaa-s3-bucket.md) DAGs, 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
<a name="working-dags-dependencies-how"></a>

Auf Amazon MWAA installieren Sie alle Python-Abhängigkeiten, 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 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:

1. Erstellen Sie lokal eine `requirements.txt` Datei.

1. Laden Sie das Lokale `requirements.txt` in Ihren Amazon S3 S3-Bucket hoch.

1. 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 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
<a name="working-dags-dependencies-overview"></a>

Sie können Apache Airflow 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
<a name="working-dags-dependencies-quota"></a>

Der Apache Airflow Scheduler und die Worker 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 MWAA installieren muss, desto länger dauert die *Startzeit* in einer Umgebung. Amazon MWAA begrenzt zwar 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
<a name="working-dags-dependencies-test-create"></a>

In den folgenden Schritten werden die Schritte beschrieben, die wir empfehlen, um eine Datei requirements.txt lokal zu erstellen.

### Schritt eins: Testen Sie Python-Abhängigkeiten mit dem Amazon MWAA CLI-Hilfsprogramm
<a name="working-dags-dependencies-cli-utility"></a>
+ Das Befehlszeilenschnittstellenprogramm (CLI) repliziert eine Amazon Managed Workflows for Apache Airflow Airflow-Umgebung lokal.
+ Die CLI erstellt lokal ein Docker-Container-Image, das einem Amazon MWAA-Produktionsimage ähnelt. Sie können damit eine lokale Apache Airflow Airflow-Umgebung ausführen, um benutzerdefinierte Plugins und Abhängigkeiten zu entwickeln und zu testen DAGs, bevor Sie sie auf Amazon MWAA bereitstellen.
+ Informationen zum Ausführen der CLI finden Sie unter [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)on GitHub.

### Schritt zwei: Erstellen Sie das `requirements.txt`
<a name="working-dags-dependencies-syntax-create"></a>

Im folgenden Abschnitt wird beschrieben, wie Python-Abhängigkeiten aus dem [Python-Paketindex](https://pypi.org/) in einer `requirements.txt` Datei angegeben werden.

------
#### [ Apache Airflow v3 ]

1. **Testen Sie lokal**. Fügen Sie iterativ weitere Bibliotheken hinzu, um die richtige Kombination von Paketen und ihren Versionen zu finden, bevor Sie eine `requirements.txt` Datei erstellen. Informationen zum Ausführen des Amazon MWAA-CLI-Dienstprogramms finden Sie [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)unter. GitHub

1. **Sehen Sie sich die Extras des Apache Airflow-Pakets** an. Eine Liste der für Apache Airflow v3 auf Amazon MWAA installierten Pakete finden Sie [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt)auf der Website. GitHub 

1. **Fügen Sie eine Beschränkungsanweisung hinzu**. Fügen Sie die Einschränkungsdatei für Ihre Apache Airflow v3-Umgebung am Anfang Ihrer `requirements.txt` Datei hinzu. Apache Airflow Airflow-Einschränkungsdateien spezifizieren die Anbieterversionen, die zum Zeitpunkt einer Apache Airflow Airflow-Veröffentlichung verfügbar waren.

    Ersetzen Sie im folgenden Beispiel {{{environment-version}}} durch die Versionsnummer Ihrer Umgebung und {{{Python-version}}} durch die Version von Python, die mit Ihrer Umgebung kompatibel ist. 

   Informationen zu der Version von Python, die mit Ihrer Apache Airflow Airflow-Umgebung kompatibel ist, finden Sie unter [Apache Airflow Airflow-Versionen](airflow-versions.md#airflow-versions-official). 

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

    Wenn die Beschränkungsdatei feststellt, dass das `xyz==1.0` Paket nicht mit anderen Paketen in Ihrer Umgebung kompatibel ist, kann nicht verhindert `pip3 install` werden, dass inkompatible Bibliotheken in Ihrer Umgebung installiert werden. Wenn die Installation für eines der Pakete fehlschlägt, können Sie auf die Fehlerprotokolle für jede Apache Airflow Airflow-Komponente (den Scheduler, den Worker und den Webserver) im entsprechenden Protokollstream unter Logs zugreifen. CloudWatch Weitere Informationen zu Protokolltypen finden Sie unter. [Zugreifen auf Airflow-Protokolle in Amazon CloudWatch](monitoring-airflow.md) 

1. **Apache Airflow-Pakete**. Fügen Sie die [Paket-Extras](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) und die Version (`==`) hinzu. Dies hilft zu verhindern, dass Pakete mit demselben Namen, aber unterschiedlicher Version in Ihrer Umgebung installiert werden.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Python-Bibliotheken**. Fügen Sie den Paketnamen und die Version (`==`) in Ihre `requirements.txt` Datei ein. Auf diese Weise wird verhindert, dass ein future aktuelles Update von [PyPi.org](https://pypi.org) automatisch angewendet wird.

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 und psycopg2-binary**  

   Dieses Beispiel dient zu Demonstrationszwecken. Die Bibliotheken boto und psycopg2-binary sind in der Basisinstallation für Apache Airflow v3 enthalten und müssen nicht in einer Datei angegeben werden. `requirements.txt`

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Wenn ein Paket ohne Version angegeben wird, installiert Amazon MWAA die neueste Version des Pakets von PyPi .org.](https://pypi.org) Diese Version kann zu Konflikten mit anderen Paketen in Ihrem führen. `requirements.txt`

------
#### [ Apache Airflow v2 ]

1. **Testen Sie lokal**. Fügen Sie iterativ weitere Bibliotheken hinzu, um die richtige Kombination von Paketen und ihren Versionen zu finden, bevor Sie eine `requirements.txt` Datei erstellen. Informationen zum Ausführen des Amazon MWAA-CLI-Dienstprogramms finden Sie [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)unter. GitHub

1. **Sehen Sie sich die Extras des Apache Airflow-Pakets** an. Eine Liste der für Apache Airflow v2 auf Amazon MWAA installierten Pakete finden Sie [aws-mwaa-docker-images `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt)auf der Website. GitHub 

1. **Fügen Sie eine Beschränkungsanweisung hinzu**. Fügen Sie die Einschränkungsdatei für Ihre Apache Airflow v2-Umgebung am Anfang Ihrer `requirements.txt` Datei hinzu. Apache Airflow Airflow-Einschränkungsdateien spezifizieren die Anbieterversionen, die zum Zeitpunkt einer Apache Airflow Airflow-Veröffentlichung verfügbar waren.

    Ab Apache Airflow v2.7.2 muss Ihre Anforderungsdatei eine Erklärung enthalten. `--constraint` Wenn Sie keine Einschränkung angeben, gibt Amazon MWAA eine für Sie an, um sicherzustellen, dass die in Ihren Anforderungen aufgeführten Pakete mit der Version von Apache Airflow kompatibel sind, die Sie verwenden. 

   Ersetzen Sie im folgenden Beispiel {{{environment-version}}} durch die Versionsnummer Ihrer Umgebung und {{{Python-version}}} durch die Version von Python, die mit Ihrer Umgebung kompatibel ist.

   Informationen zu der Version von Python, die mit Ihrer Apache Airflow Airflow-Umgebung kompatibel ist, finden Sie unter [Apache Airflow Airflow-Versionen](airflow-versions.md#airflow-versions-official).

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

   Wenn die Beschränkungsdatei feststellt, dass das `xyz==1.0` Paket nicht mit anderen Paketen in Ihrer Umgebung kompatibel ist, kann nicht verhindert `pip3 install` werden, dass inkompatible Bibliotheken in Ihrer Umgebung installiert werden. Wenn die Installation für eines der Pakete fehlschlägt, können Sie auf die Fehlerprotokolle für jede Apache Airflow Airflow-Komponente (den Scheduler, den Worker und den Webserver) im entsprechenden Protokollstream unter Logs zugreifen. CloudWatch Weitere Informationen zu Protokolltypen finden Sie unter. [Zugreifen auf Airflow-Protokolle in Amazon CloudWatch](monitoring-airflow.md)

1. **Apache Airflow-Pakete**. Fügen Sie die [Paket-Extras](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) und die Version (`==`) hinzu. Dies hilft zu verhindern, dass Pakete mit demselben Namen, aber unterschiedlicher Version in Ihrer Umgebung installiert werden.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Python-Bibliotheken**. Fügen Sie den Paketnamen und die Version (`==`) in Ihre `requirements.txt` Datei ein. Auf diese Weise wird verhindert, dass ein future aktuelles Update von [PyPi.org](https://pypi.org) automatisch angewendet wird.

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 und psycopg2-binary**  

   Dieses Beispiel dient zu Demonstrationszwecken. Die Bibliotheken boto und psycopg2-binary sind in der Apache Airflow v2-Basisinstallation enthalten und müssen nicht in einer Datei angegeben werden. `requirements.txt`

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   [Wenn ein Paket ohne Version angegeben wird, installiert Amazon MWAA die neueste Version des Pakets von PyPi .org.](https://pypi.org) Diese Version kann zu Konflikten mit anderen Paketen in Ihrem führen. `requirements.txt`

------

## Auf Amazon `requirements.txt` S3 hochladen
<a name="configuring-dag-dependencies-upload"></a>

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
<a name="configuring-dag-dependencies-upload-cli"></a>

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:
+ [AWS CLI — Installieren Sie Version 2.](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ [AWS CLI — Schnelle Konfiguration mit `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

**Zum Hochladen mit dem AWS CLI**

1. Verwenden Sie den folgenden Befehl, um alle Ihre Amazon S3 S3-Buckets aufzulisten.

   ```
   aws s3 ls
   ```

1. 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}}
   ```

1. Der folgende Befehl lädt eine `requirements.txt` Datei in einen Amazon S3 S3-Bucket hoch.

   ```
   aws s3 cp requirements.txt s3://{{amzn-s3-demo-bucket}}/requirements.txt
   ```

### Verwenden der Amazon S3-Konsole
<a name="configuring-dag-dependencies-upload-console"></a>

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**

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie im Bereich **DAG-Code im Bereich S3** **den Link S3-Bucket** aus, um Ihren Speicher-Bucket in der Konsole zu öffnen.

1. Klicken Sie auf **Upload**.

1. Wählen **Sie Datei hinzufügen**.

1. Wählen Sie die lokale Kopie Ihres aus `requirements.txt` und wählen Sie **Hochladen**.

## Installation von Python-Abhängigkeiten in Ihrer Umgebung
<a name="configuring-dag-dependencies-installing"></a>

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.

### Angeben des Pfads zu `requirements.txt` auf der Amazon MWAA-Konsole (beim ersten Mal)
<a name="configuring-dag-dependencies-first"></a>

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 Amazon MWAA-Konsole angeben. Sie müssen diesen Schritt nur einmal ausführen.

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie **Bearbeiten** aus.

1. Wählen Sie im Bereich **DAG-Code in Amazon S3** **neben dem Feld **Anforderungsdatei — optional** die Option S3 durchsuchen** aus.

1. Wählen Sie die `requirements.txt` Datei in Ihrem Amazon S3 S3-Bucket aus.

1. Wählen Sie **Choose (Auswählen)** aus.

1. 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 Amazon MWAA-Konsole
<a name="working-dags-dependencies-mwaaconsole-version"></a>

Sie müssen die Version Ihrer `requirements.txt` Datei auf der Amazon MWAA-Konsole jedes Mal angeben, wenn Sie eine neue Version Ihrer Datei `requirements.txt` in Ihren Amazon S3 S3-Bucket hochladen.

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie **Bearbeiten** aus.

1. Wählen Sie im Bereich **DAG-Code in Amazon S3** eine `requirements.txt` Version aus der Dropdownliste aus.

1. 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`
<a name="working-dags-dependencies-logs"></a>

Sie können Apache Airflow 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 auf die Apache Airflow Airflow-Protokolle in der Logs-Konsole zugreifen. CloudWatch 

**So greifen Sie auf Protokolle für einen zu `requirements.txt`**

1. Öffnen Sie die Seite [Umgebungen](https://console.aws.amazon.com/mwaa/home#/environments) auf der Amazon MWAA-Konsole.

1. Wählen Sie eine Umgebung aus.

1. Wählen Sie im **Bereich **Überwachung** die Protokollgruppe Airflow Scheduler** aus.

1. **Wählen Sie unter `requirements_install_ip` Log-Streams die Option Log Streams aus.**

1. Eine Liste der Pakete, die in der Umgebung installiert wurden, finden Sie unter`/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))
   ```

1. Überprüfen Sie die Liste der Pakete und ob bei der Installation eines dieser Pakete ein Fehler aufgetreten ist. Wenn etwas schief gelaufen ist, erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:

   ```
   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
<a name="working-dags-dependencies-next-up"></a>

Testen Sie Ihre DAGs benutzerdefinierten Plugins und Python-Abhängigkeiten lokal mit [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)on GitHub.