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 de plugins personnalisés
Amazon Managed Workflows pour Apache Airflow prend en charge le gestionnaire de plugins intégré d'Apache Airflow, qui vous permet d'utiliser des opérateurs, des hooks, des capteurs ou des interfaces Apache Airflow personnalisés. Cette page décrit les étapes d'installation des plugins personnalisés Apache Airflowplugins.zip
Table des matières
Prérequis
Vous aurez besoin des éléments suivants avant de pouvoir effectuer les étapes indiquées sur cette page.
-
Autorisations — Votre administrateur Compte AWS doit vous avoir accordé l'accès à la politique de contrôle MWAAFull ConsoleAccess d'accès Amazon pour votre environnement. En outre, votre environnement Amazon MWAA doit être autorisé par votre rôle d'exécution à 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.
-
Configuration Amazon S3 — Le compartiment Amazon S3 utilisé pour stocker vos DAGs plugins personnalisés et vos dépendances Python
requirements.txtdoit être configuré avec l'accès public bloqué et le versionnage activé.plugins.zip
Comment ça marche
Pour exécuter des plugins personnalisés sur votre environnement, vous devez effectuer trois opérations :
-
Créez un
plugins.zipfichier localement. -
Téléchargez le
plugins.zipfichier local dans votre compartiment Amazon S3. -
Spécifiez la version de ce fichier dans le champ Fichier de plugins de la console Amazon MWAA.
Note
Si c'est la première fois que vous chargez un plugins.zip 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.
Quand utiliser les plugins
Les plug-ins ne sont nécessaires que pour étendre l'interface utilisateur d'Apache Airflow, comme indiqué dans la documentation d'Apache Airflow/dags dossier à côté de votre DAG code.
Si vous devez créer vos propres intégrations avec des systèmes externes, placez-les dans le dags dossier/ou dans l'un de ses sous-dossiers, mais pas dans le plugins.zip dossier. Dans Apache Airflow 2.x, les plugins sont principalement utilisés pour étendre l'interface utilisateur.
De même, aucune autre dépendance ne peut être inséréeplugins.zip. Ils peuvent plutôt être stockés dans un emplacement du /dags dossier Amazon S3, où ils seront synchronisés avec chaque conteneur Amazon MWAA avant le démarrage d'Apache Airflow.
Note
Tout fichier du /dags dossier ou plugins.zip qui ne définit pas explicitement un objet DAG d'Apache Airflow doit être répertorié dans un .airflowignore fichier.
Vue d'ensemble des plugins personnalisés
Le gestionnaire de plugins intégré à Apache Airflow peut intégrer des fonctionnalités externes à son cœur en déposant simplement des fichiers dans un $AIRFLOW_HOME/plugins dossier. Vous pouvez l'utiliser pour utiliser des opérateurs, des hooks, des capteurs ou des interfaces Apache Airflow personnalisés. La section suivante fournit un exemple de structures de répertoires plates et imbriquées dans un environnement de développement local et les instructions d'importation qui en résultent, qui déterminent la structure de répertoire dans un fichier plugins.zip.
Répertoire des plugins personnalisés et limites de taille
Le planificateur Apache Airflow et les opérateurs recherchent des plugins personnalisés lors du démarrage sur le conteneur AWS Fargate géré pour votre environnement à l'adresse. /usr/local/airflow/plugins/*
-
Structure du répertoire. La structure du répertoire (at
/) est basée sur le contenu de votre*plugins.zipfichier. Par exemple, si vousplugins.zipconservez leoperatorsrépertoire en tant que répertoire de niveau principal, le répertoire sera extrait dans votre/usr/local/airflow/plugins/environnement.operators -
Limite de taille. Nous recommandons un
plugins.zipfichier de moins de 1 Go. Plus la taille d'unplugins.zipfichier est importante, plus le temps de démarrage d'un environnement est long. Bien qu'Amazon MWAA ne limite pas explicitement la taille d'unplugins.zipfichier, 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.
Note
Pour les environnements utilisant Apache Airflow v2.0.2, Amazon MWAA limite le trafic sortant sur le serveur Web Apache Airflow et n'autorise pas l'installation de plugins ni de dépendances Python directement sur le serveur Web. À partir de la version 2.2.2 d'Apache Airflow, Amazon MWAA peut installer des plugins et des dépendances directement sur le serveur Web.
Exemples de plugins personnalisés
La section suivante utilise un exemple de code du guide de référence Apache Airflow pour expliquer comment structurer votre environnement de développement local.
Exemple d'utilisation d'une structure de répertoire plate dans plugins.zip
Exemple d'utilisation d'une structure de répertoire imbriquée dans plugins.zip
Création d'un fichier plugins.zip
Les étapes suivantes décrivent les étapes que nous recommandons pour créer un fichier plugins.zip localement.
Première étape : tester les plugins personnalisés à l'aide de l'utilitaire Amazon MWAA CLI
-
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 DAGs des plugins personnalisés et des dépendances avant le déploiement sur Amazon MWAA.
-
Pour exécuter la CLI, reportez-vous à la section aws-mwaa-docker-images
on GitHub.
Deuxième étape : créer le fichier plugins.zip
Vous pouvez utiliser un utilitaire d'archivage ZIP intégré ou tout autre utilitaire ZIP (tel que 7zip
Note
L'utilitaire zip intégré pour le système d'exploitation Windows peut ajouter des sous-dossiers lorsque vous créez un fichier .zip. Nous vous recommandons de vérifier le contenu du fichier plugins.zip avant de le télécharger dans votre compartiment Amazon S3 afin de vous assurer qu'aucun répertoire supplémentaire n'a été ajouté.
-
Remplacez les répertoires par votre répertoire de plugins Airflow local. Par exemple :
myproject$cd plugins -
Exécutez la commande suivante pour vous assurer que le contenu dispose d'autorisations exécutables (macOS et Linux uniquement).
plugins$chmod -R 755 . -
Compressez le contenu de votre
pluginsdossier.plugins$zip -r plugins.zip .
Téléchargement plugins.zip vers Amazon S3
Vous pouvez utiliser la console Amazon S3 ou le AWS Command Line Interface (AWS CLI) pour charger un plugins.zip fichier dans votre compartiment Amazon S3.
À l'aide du AWS CLI
The AWS Command Line Interface (AWS CLI) est un outil open source que vous pouvez utiliser pour interagir avec les AWS services à l'aide de commandes dans votre interface de ligne de commande. Pour effectuer les étapes indiquées sur cette page, vous avez besoin des éléments suivants :
Pour effectuer un téléchargement à l'aide du AWS CLI
-
Dans votre invite de commande, accédez au répertoire dans lequel votre
plugins.zipfichier est stocké. Par exemple :cd plugins -
Utilisez la commande suivante pour répertorier tous vos compartiments Amazon S3.
aws s3 ls -
Utilisez la commande suivante pour répertorier les fichiers et les dossiers du compartiment Amazon S3 de votre environnement.
aws s3 ls s3://YOUR_S3_BUCKET_NAME -
Utilisez la commande suivante pour charger le
plugins.zipfichier dans le compartiment Amazon S3 de votre environnement.aws s3 cp plugins.zip s3://amzn-s3-demo-bucket/plugins.zip
Utilisation de la console Amazon S3
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
-
Ouvrez la page Environnements
sur la console Amazon MWAA. -
Choisissez un environnement.
-
Sélectionnez le lien du compartiment S3 dans le code DAG du volet S3 pour ouvrir votre compartiment de stockage dans la console.
-
Choisissez Charger.
-
Choisissez Ajouter un fichier.
-
Sélectionnez la copie locale de votre fichier
plugins.zip, puis choisissez Upload.
Installation de plugins personnalisés sur votre environnement
Cette section décrit comment installer les plugins personnalisés que vous avez chargés dans votre compartiment Amazon S3 en spécifiant le chemin d'accès au fichier plugins.zip et en spécifiant la version du fichier plugins.zip chaque fois que le fichier zip est mis à jour.
Spécifier le chemin d'accès plugins.zip sur la console Amazon MWAA (pour la première fois)
Si c'est la première fois que vous chargez un plugins.zip 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.
-
Ouvrez la page Environnements
sur la console Amazon MWAA. -
Choisissez un environnement.
-
Choisissez Modifier.
-
Dans le code DAG du volet Amazon S3, choisissez Browse S3 adjacent au fichier Plugins - champ facultatif.
-
Sélectionnez le
plugins.zipfichier dans votre compartiment Amazon S3. -
Choisissez Choisir.
-
Choisissez Suivant, Mettre à jour l'environnement.
Spécification de la plugins.zip version sur la console Amazon MWAA
Vous devez spécifier la version de votre plugins.zip fichier sur la console Amazon MWAA chaque fois que vous chargez une nouvelle version de votre fichier plugins.zip dans votre compartiment Amazon S3.
-
Ouvrez la page Environnements
sur la console Amazon MWAA. -
Choisissez un environnement.
-
Choisissez Modifier.
-
Sur le code DAG dans le volet Amazon S3, choisissez une
plugins.zipversion dans la liste déroulante. -
Choisissez Suivant.
Exemples de cas d'utilisation pour plugins.zip
-
Découvrez comment créer un plugin personnalisé dansPlugin personnalisé avec Apache Hive et Hadoop.
-
Découvrez comment créer un plugin personnalisé dansPlugin personnalisé à patcher PythonVirtualenvOperator .
-
Découvrez comment créer un plugin personnalisé dansPlug-in personnalisé avec Oracle.
-
Découvrez comment créer un plugin personnalisé dansModifier le fuseau horaire d'un DAG sur Amazon MWAA.
Quelle est la prochaine étape ?
Testez vos DAGs plugins personnalisés et vos dépendances Python localement à l'aide de aws-mwaa-docker-images