

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Installation des dépendances Python
<a name="working-dags-dependencies"></a>

Une dépendance Python est un package ou une distribution non inclus dans l'installation de base d'Apache Airflow pour votre version d'Apache Airflow sur votre environnement Amazon Managed Workflows pour Apache Airflow. Cette rubrique décrit les étapes à suivre pour installer les dépendances Python d'Apache Airflow dans votre environnement Amazon MWAA à l'aide d'un `requirements.txt` fichier de votre compartiment Amazon S3.

**Contents**
+ [Conditions préalables](#working-dags-dependencies-prereqs)
+ [Comment ça marche](#working-dags-dependencies-how)
+ [Vue d'ensemble des dépendances Python](#working-dags-dependencies-overview)
  + [Limites d'emplacement et de taille des dépendances Python](#working-dags-dependencies-quota)
+ [Création d'un fichier requirements.txt](#working-dags-dependencies-test-create)
  + [Première étape : tester les dépendances Python à l'aide de l'utilitaire CLI Amazon MWAA](#working-dags-dependencies-cli-utility)
  + [Deuxième étape : créer le `fichier requirements.txt`](#working-dags-dependencies-syntax-create)
+ [Chargement du `fichier requirements.txt` sur Amazon S3](#configuring-dag-dependencies-upload)
  + [Utilisation de AWS CLI](#configuring-dag-dependencies-upload-cli)
  + [Utilisation de la console Amazon S3](#configuring-dag-dependencies-upload-console)
+ [Installation des dépendances Python dans votre environnement](#configuring-dag-dependencies-installing)
  + [Spécifier le chemin d'accès au `fichier requirements.txt` sur la console Amazon MWAA (la première fois)](#configuring-dag-dependencies-first)
  + [Spécification de la `version de` requirements.txt sur la console Amazon MWAA](#working-dags-dependencies-mwaaconsole-version)
+ [Accès aux journaux de votre `fichier requirements.txt`](#working-dags-dependencies-logs)
+ [Quelle est la prochaine étape ?](#working-dags-dependencies-next-up)

## Conditions préalables
<a name="working-dags-dependencies-prereqs"></a>

Vous aurez besoin des éléments suivants avant de pouvoir effectuer les étapes de cette page.
+ **Autorisations ** : votre administrateur Compte AWS doit vous avoir accordé l'accès à la politique de contrôle [ AmazonMWAAFullConsoleAccess ](access-policies.md#console-full-access) d'accès de votre environnement. En outre, votre environnement Amazon MWAA doit être autorisé par votre rôle [ d'exécution ](mwaa-create-role.md) à accéder aux AWS ressources utilisées par votre environnement.
+ **Accès ** : si vous avez besoin d'accéder à des référentiels publics pour installer des dépendances directement sur le serveur Web, votre environnement doit être configuré avec un accès au serveur ** Web du réseau ** public. Pour plus d’informations, consultez [Modes d’accès Apache Airflow](configuring-networking.md).
+ **Configuration Amazon S3 ** : le compartiment [ Amazon S3 ](mwaa-s3-bucket.md) utilisé pour stocker vos DAG, vos plugins personnalisés et vos dépendances Python dans `plugins.zip` `requirements.txt` doit être configuré avec l'accès * public bloqué * et la gestion des * versions activée. *

## Comment ça marche
<a name="working-dags-dependencies-how"></a>

Sur Amazon MWAA, vous installez toutes les dépendances Python en chargeant un `requirements.txt` fichier dans votre compartiment Amazon S3, puis en spécifiant la version du fichier sur la console Amazon MWAA chaque fois que vous mettez à jour le fichier. Amazon MWAA s'exécute `pip3 install -r requirements.txt` pour installer les dépendances Python sur le planificateur Apache Airflow et sur chacun des workers.

Pour exécuter des dépendances Python sur votre environnement, vous devez effectuer trois opérations :

1. Créez un `requirements.txt` fichier localement.

1. Téléchargez le fichier local `requirements.txt` dans votre compartiment Amazon S3.

1. Spécifiez la version de ce fichier dans le ** champ Fichier des ** exigences de la console Amazon MWAA.

**Note**  
Si c'est la première fois que vous créez et chargez un `requirements.txt` fichier dans votre compartiment Amazon S3, vous devez également spécifier le chemin d'accès au fichier sur la console Amazon MWAA. Vous ne devez effectuer cette étape qu'une seule fois.

## Vue d'ensemble des dépendances Python
<a name="working-dags-dependencies-overview"></a>

Vous pouvez installer les extras d'Apache Airflow et d'autres dépendances Python à partir du Python Package Index (PyPi.org), des roues Python (`.whl`) ou des dépendances Python hébergées sur un dépôt PyPi/PEP-503 conforme privé de votre environnement.

### Limites d'emplacement et de taille des dépendances Python
<a name="working-dags-dependencies-quota"></a>

Le planificateur Apache Airflow et les workers recherchent les packages dans le `requirements.txt` fichier et les packages sont installés dans l'environnement à l'adresse. `/usr/local/airflow/.local/bin`
+ **Limite de taille**. Nous recommandons un `requirements.txt` fichier qui fait référence à des bibliothèques dont la taille combinée est inférieure à 1 Go. Plus Amazon MWAA doit installer de bibliothèques, plus le * temps de * démarrage d'un environnement est long. Bien qu'Amazon MWAA ne limite pas explicitement la taille des bibliothèques installées, si les dépendances ne peuvent pas être installées dans les dix minutes, le service Fargate expirera et tentera de rétablir la stabilité de l'environnement.

## Création d'un fichier requirements.txt
<a name="working-dags-dependencies-test-create"></a>

Les étapes suivantes décrivent les étapes que nous recommandons pour créer un fichier requirements.txt localement.

### Première étape : tester les dépendances Python à l'aide de l'utilitaire CLI Amazon MWAA
<a name="working-dags-dependencies-cli-utility"></a>
+ L'utilitaire d'interface de ligne de commande (CLI) reproduit localement un environnement Amazon Managed Workflows pour Apache Airflow.
+ La CLI crée localement une image de conteneur Docker similaire à une image de production Amazon MWAA. Vous pouvez l'utiliser pour exécuter un environnement Apache Airflow local afin de développer et de tester des DAG, des plugins personnalisés et des dépendances avant le déploiement sur Amazon MWAA.
+ Pour exécuter la CLI, reportez-vous à [https://github.com/aws/amazon-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) aws-mwaa-docker-images on. GitHub

### Deuxième étape : créer le `fichier requirements.txt`
<a name="working-dags-dependencies-syntax-create"></a>

La section suivante explique comment spécifier les dépendances Python à partir de l'index des packages [ Python ](https://pypi.org/) dans un `requirements.txt` fichier.

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

1. **Testez localement**. Ajoutez des bibliothèques supplémentaires de manière itérative pour trouver la bonne combinaison de packages et de leurs versions, avant de créer un `requirements.txt` fichier. Pour exécuter l'utilitaire Amazon MWAA CLI, reportez-vous à la section [https://github.com/aws/amazon-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) aws-mwaa-docker-images sur. GitHub

1. **Consultez les suppléments ** du package Apache Airflow. Pour accéder à la liste des packages installés pour Apache Airflow v3 sur Amazon MWAA, consultez [`requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) aws-mwaa-docker-images sur le site Web. GitHub 

1. **Ajoutez une déclaration de contraintes**. Ajoutez le fichier de contraintes de votre environnement Apache Airflow v3 en haut de votre `requirements.txt` fichier. Les fichiers de contraintes d'Apache Airflow spécifient les versions du fournisseur disponibles au moment de la publication d'Apache Airflow.

    Dans l'exemple suivant, remplacez-la {{{Airflow-version}}} par la version Airflow de votre environnement. {{{Python-version}}}Remplacez-la par la version de Python compatible avec votre environnement. 

   Pour plus d'informations sur la version de Python compatible avec votre environnement Apache Airflow, consultez la section Versions d'[Apache Airflow. ](airflow-versions.md#airflow-versions-official) 

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

    Si le fichier de contraintes détermine que le `xyz==1.0` package n'est pas compatible avec les autres packages de votre environnement, `pip3 install` il n'empêchera pas l'installation de bibliothèques incompatibles dans votre environnement. Si l'installation échoue pour l'un des packages, vous pouvez accéder aux journaux d'erreurs pour chaque composant Apache Airflow (le planificateur, le worker et le serveur Web) dans le flux de journaux correspondant sur Logs. CloudWatch Pour plus d'informations sur les types de journaux, reportez-vous à[Accès aux journaux Airflow sur Amazon CloudWatch](monitoring-airflow.md). 
**Mise à jour des versions des fichiers de contraintes**  
Si vous devez mettre à jour les versions du fichier de contraintes, reportez-vous à la section Fichier de [ contraintes](connections-packages.md#connections-packages-constraints).

1. **Packages ** Apache Airflow. Ajoutez les extras [ du package ](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) et la version (`==`). Cela permet d'empêcher l'installation de packages portant le même nom, mais dont la version est différente, dans votre environnement.

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

1. **Bibliothèques Python**. Ajoutez le nom du package et la version (`==`) dans votre `requirements.txt` fichier. Cela permet d'éviter l'application automatique d'une future mise à jour [ PyPi.org ](https://pypi.org) de dernière minute.

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

   Cet exemple est fourni à des fins de démonstration. Les bibliothèques boto et psycopg2-binary sont incluses dans l'installation de base d'Apache Airflow v3 et n'ont pas besoin d'être spécifiées dans un fichier. `requirements.txt`

   ```
   boto3==1.42.84
   botocore==1.42.84
   psycopg2-binary==2.9.11
   ```

   Si un package est spécifié sans version, Amazon MWAA installe la dernière version du package depuis. [ PyPi.org ](https://pypi.org) Cette version peut entrer en conflit avec d'autres packages de votre`requirements.txt`.

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

1. **Testez localement**. Ajoutez des bibliothèques supplémentaires de manière itérative pour trouver la bonne combinaison de packages et de leurs versions, avant de créer un `requirements.txt` fichier. Pour exécuter l'utilitaire Amazon MWAA CLI, reportez-vous à la section [https://github.com/aws/amazon-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) aws-mwaa-docker-images sur. GitHub

1. **Consultez les suppléments ** du package Apache Airflow. Pour accéder à la liste des packages installés pour Apache Airflow v2 sur Amazon MWAA, accédez à [`requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) aws-mwaa-docker-images sur le site Web. GitHub 

1. **Ajoutez une déclaration de contraintes**. Ajoutez le fichier de contraintes de votre environnement Apache Airflow v2 en haut de votre `requirements.txt` fichier. Les fichiers de contraintes d'Apache Airflow spécifient les versions du fournisseur disponibles au moment de la publication d'Apache Airflow.

    À partir de la version 2.7.2 d'Apache Airflow, votre fichier de spécifications doit inclure une déclaration. `--constraint` Si vous n'indiquez aucune contrainte, Amazon MWAA vous en indiquera une afin de s'assurer que les packages répertoriés dans vos exigences sont compatibles avec la version d'Apache Airflow que vous utilisez. 

   Dans l'exemple suivant, remplacez-la {{{Airflow-version}}} par la version Airflow de votre environnement. {{{Python-version}}}Remplacez-la par la version de Python compatible avec votre environnement.

   Pour plus d'informations sur la version de Python compatible avec votre environnement Apache Airflow, consultez la section Versions d'[Apache Airflow. ](airflow-versions.md#airflow-versions-official)

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

   Si le fichier de contraintes détermine que le `xyz==1.0` package n'est pas compatible avec les autres packages de votre environnement, `pip3 install` il n'empêchera pas l'installation de bibliothèques incompatibles dans votre environnement. Si l'installation échoue pour l'un des packages, vous pouvez accéder aux journaux d'erreurs pour chaque composant Apache Airflow (le planificateur, le worker et le serveur Web) dans le flux de journaux correspondant sur Logs. CloudWatch Pour plus d'informations sur les types de journaux, reportez-vous à[Accès aux journaux Airflow sur Amazon CloudWatch](monitoring-airflow.md).
**Mise à jour des versions des fichiers de contraintes**  
Si vous devez mettre à jour les versions du fichier de contraintes, reportez-vous à la section Fichier de [ contraintes](connections-packages.md#connections-packages-constraints).

1. **Packages ** Apache Airflow. Ajoutez les extras [ du package ](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) et la version (`==`). Cela permet d'empêcher l'installation de packages portant le même nom, mais dont la version est différente, dans votre environnement.

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

1. **Bibliothèques Python**. Ajoutez le nom du package et la version (`==`) dans votre `requirements.txt` fichier. Cela permet d'éviter l'application automatique d'une future mise à jour [ PyPi.org ](https://pypi.org) de dernière minute.

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

   Cet exemple est fourni à des fins de démonstration. Les bibliothèques boto et psycopg2-binary sont incluses dans l'installation de base d'Apache Airflow v2 et n'ont pas besoin d'être spécifiées dans un fichier. `requirements.txt`

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

   Si un package est spécifié sans version, Amazon MWAA installe la dernière version du package depuis. [ PyPi.org ](https://pypi.org) Cette version peut entrer en conflit avec d'autres packages de votre`requirements.txt`.

------

## Chargement du `fichier requirements.txt` sur Amazon S3
<a name="configuring-dag-dependencies-upload"></a>

Vous pouvez utiliser la console Amazon S3 ou le AWS Command Line Interface (AWS CLI) pour charger un `requirements.txt` fichier dans votre compartiment Amazon S3.

### Utilisation de AWS CLI
<a name="configuring-dag-dependencies-upload-cli"></a>

Le AWS Command Line Interface (AWS CLI) est un outil open source que vous pouvez utiliser pour interagir avec les AWS services à l'aide des commandes de votre shell de ligne de commande. Pour effectuer les étapes de cette page, vous devez disposer des éléments suivants :
+ [AWS CLI — Installez la version 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI — Configuration rapide avec `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

**Pour télécharger à l'aide du AWS CLI**

1. Utilisez la commande suivante pour répertorier tous vos compartiments Amazon S3.

   ```
   aws s3 ls
   ```

1. Utilisez la commande suivante pour répertorier les fichiers et les dossiers du compartiment Amazon S3 correspondant à votre environnement.

   ```
   aws s3 ls s3://{{YOUR_S3_BUCKET_NAME}}
   ```

1. La commande suivante télécharge un `requirements.txt` fichier vers un compartiment Amazon S3.

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

### Utilisation de la console Amazon S3
<a name="configuring-dag-dependencies-upload-console"></a>

La console Amazon S3 est une interface utilisateur Web que vous pouvez utiliser pour créer et gérer les ressources de votre compartiment Amazon S3.

**Pour charger à l'aide de la console Amazon S3**

1. Ouvrez la [ page ](https://console.aws.amazon.com/mwaa/home#/environments) Environnements sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Sélectionnez le ** lien vers le compartiment ** S3 dans le code ** DAG du ** volet S3 pour ouvrir votre compartiment de stockage dans la console.

1. Choisissez **Charger**.

1. Choisissez ** Ajouter un fichier**.

1. Sélectionnez la copie locale de votre`requirements.txt`, puis choisissez ** Télécharger**.

## Installation des dépendances Python dans votre environnement
<a name="configuring-dag-dependencies-installing"></a>

Cette section explique comment installer les dépendances que vous avez chargées dans votre compartiment Amazon S3 en spécifiant le chemin d'accès au fichier requirements.txt et en spécifiant la version du fichier requirements.txt à chaque fois qu'il est mis à jour.

### Spécifier le chemin d'accès au `fichier requirements.txt` sur la console Amazon MWAA (la première fois)
<a name="configuring-dag-dependencies-first"></a>

Si c'est la première fois que vous créez et chargez un `requirements.txt` fichier dans votre compartiment Amazon S3, vous devez également spécifier le chemin d'accès au fichier sur la console Amazon MWAA. Vous ne devez effectuer cette étape qu'une seule fois.

1. Ouvrez la [ page ](https://console.aws.amazon.com/mwaa/home#/environments) Environnements sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Choisissez **Modifier**.

1. Dans le ** volet Code ** DAG d'Amazon S3, choisissez ** Browse S3 à ** côté du ** champ ** Requirements file - facultatif.

1. Sélectionnez le `requirements.txt` fichier dans votre compartiment Amazon S3.

1. Choisissez **Choisir**.

1. Choisissez ** Suivant**, ** Mettre à jour l'environnement**.

Vous pouvez commencer à utiliser les nouveaux packages immédiatement après la fin de la mise à jour de votre environnement.

### Spécification de la `version de` requirements.txt sur la console Amazon MWAA
<a name="working-dags-dependencies-mwaaconsole-version"></a>

Vous devez spécifier la version de votre `requirements.txt` fichier sur la console Amazon MWAA chaque fois que vous chargez une nouvelle version de votre fichier `requirements.txt` dans votre compartiment Amazon S3.

1. Ouvrez la [ page ](https://console.aws.amazon.com/mwaa/home#/environments) Environnements sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Choisissez **Modifier**.

1. Dans le ** volet Code ** DAG d'Amazon S3, choisissez une `requirements.txt` version dans la liste déroulante.

1. Choisissez ** Suivant**, ** Mettre à jour l'environnement**.

Vous pouvez commencer à utiliser les nouveaux packages immédiatement après la fin de la mise à jour de votre environnement.

## Accès aux journaux de votre `fichier requirements.txt`
<a name="working-dags-dependencies-logs"></a>

Vous pouvez consulter les journaux Apache Airflow pour le planificateur qui planifie vos flux de travail et analyse votre dossier. `dags` Les étapes suivantes décrivent comment ouvrir le groupe de journaux pour le planificateur sur la console Amazon MWAA et comment accéder aux journaux Apache Airflow sur la CloudWatch console Logs.

**Pour accéder aux journaux d'un `fichier requirements.txt`**

1. Ouvrez la [ page ](https://console.aws.amazon.com/mwaa/home#/environments) Environnements sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Choisissez le groupe de journaux ** du planificateur Airflow dans ** le volet ** Surveillance**.

1. Choisissez l'option `requirements_install_ip` Login ** Log streams**.

1. Consultez la liste des packages installés sur l'environnement à l'adresse`/usr/local/airflow/.local/bin`. Par exemple :

   ```
   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. Consultez la liste des packages et vérifiez si l'un d'entre eux a rencontré une erreur lors de l'installation. En cas de problème, vous obtenez une erreur similaire à la suivante :

   ```
   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))
   ```

## Quelle est la prochaine étape ?
<a name="working-dags-dependencies-next-up"></a>

Testez vos DAG, vos plugins personnalisés et vos dépendances Python localement à l'aide de [https://github.com/aws/amazon-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) aws-mwaa-docker-images activé. GitHub