Comment installer des packages personnalisés dans mon environnement Amazon MWAA ?

Lecture de 4 minute(s)
0

Je souhaite installer des packages personnalisés avec plugins.zip dans mon environnement Amazon Managed Workflows for Apache Airflow (Amazon MWAA).

Brève description

Installez des bibliothèques Python dans Amazon MWAA à l'aide des fichiers requirements.txt et plugins.zip. Si vous utilisez le fichier requirements.txt pour installer des packages, ils sont installés par défaut à partir de l'index de packages Python (à partir du site Web PyPI). Si vous envoyez des bibliothèques (fichiers .whl) contenant des artefacts compilés, utilisez le fichier plugins.zip pour installer ces roues Python.

Utilisez le fichier plugins.zip pour installer des opérateurs, des hooks, des capteurs ou des interfaces Apache Airflow personnalisés. Ce fichier est écrit sur les conteneurs backend Fargate d'Amazon ECS à l'emplacement /usr/local/airflow/plugins/. Vous pouvez également exporter des variables d'environnement et des fichiers d'authentification et de configuration, tels que .crt et .yaml, à l'aide des plugins.

Résolution

Installer des bibliothèques avec des roues Python

Une roue Python est un fichier de package contenant des artefacts compilés. Pour installer ce package, placez le fichier (.whl) dans un fichier plugins.zip, puis reportez-vous à ce fichier dans requirements.txt. Si vous mettez à jour l'environnement après avoir ajouté le fichier .whl au fichier plugins.zip, le fichier .whl est transféré vers l'emplacement /usr/local/airflow/plugins/. Cet emplacement se trouve dans les conteneurs Fargate Amazon Elastic Container Service (Amazon ECS) sous-jacents.

Pour installer des bibliothèques à l'aide de roues Python, consultez l'article Comment installer des bibliothèques dans mon environnement Amazon MWAA ?

Installer des opérateurs, des hooks, des capteurs ou des interfaces personnalisés

Amazon MWAA prend en charge le gestionnaire de plugins intégré d'Apache Airflow pour vous permettre d'utiliser des opérateurs, des hooks, des capteurs ou des interfaces Apache Airflow personnalisés. Ces plugins personnalisés sont placés dans le fichier plugins.zip avec une structure de répertoires plate et imbriquée. Pour des exemples de plugins personnalisés, consultez la section Exemples de plugins personnalisés.

Créer un plugin personnalisé pour générer des variables d'environnement d'exécution

Vous pouvez également créer un plugin personnalisé pour générer des variables d'environnement lors de l'exécution sur votre environnement Amazon MWAA. Vous pouvez ensuite utiliser ces variables d'environnement dans votre code Directed Acyclic Graph (DAG). Pour plus d'informations, consultez la section Créer un plugin personnalisé pour générer des variables d'environnement d'exécution.

Exporter des fichiers PEM, .crt et de configuration

Si la mise à jour continue de fichiers spécifiques n'est pas nécessaire lors de l'exécution de votre environnement, envoyez ces fichiers à l'aide de plugins.zip. Vous pouvez également y placer des fichiers dont vous n'avez pas besoin pour accorder l'accès aux utilisateurs qui écrivent des DAG. Ces fichiers incluent des fichiers de certificat (.crt), des fichiers PEM et des fichiers YAML de configuration. Une fois les fichiers compressés dans le fichier plugins.zip, téléversez le fichier sur S3. Procédez ensuite à la mise à jour de l'environnement. Les fichiers sont répliqués avec les autorisations requises pour accéder à /usr/local/airflow/plugins.

Pour compresser des certificats CA personnalisés dans le fichier plugins.zip, exécutez la commande suivante :

$ zip plugins.zip ca-certificates.crt

Le fichier se trouve désormais dans le dossier /usr/local/airflow/plugins/ca-certificates.crt. Pour compresser le fichier kube_config.yaml dans le fichier plugins.zip, exécutez la commande suivante :

$ zip plugins.zip kube_config.yaml

Le fichier se trouve désormais dans /usr/local/airflow/plugins/kube_config.yaml.

Résoudre les problèmes liés au processus d'installation

Si vous rencontrez des problèmes lors de l'installation de ces packages, vous pouvez tester vos DAG, vos plugins personnalisés ou vos dépendances Python en local à l'aide de l'utilitaire aws-mwaa-local-runner.

Pour résoudre les problèmes liés à l'installation de packages Python avec le fichier plugins.zip, vous pouvez consulter le fichier journal (requirements_install_ip) à partir des groupes de journaux Apache Airflow Worker ou Scheduler.

**Important :**Avant d'installer des packages ou le fichier plugins.zip sur votre environnement Amazon MWAA, il est recommandé de tester les dépendances Python et le fichier plugins.zip avec l'utilitaire d'interface de ligne de commande Amazon MWAA (aws-mwaa-local-runner).

Informations connexes

Plugins

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois