Installer des plug-ins personnalisés

Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération héritée)

Cette page explique comment installer des plug-ins personnalisés dans votre environnement Managed Service for Apache Airflow.

Le gestionnaire de plug-ins d'Apache Airflow vous permet d'écrire des opérateurs, des hooks, des capteurs ou des interfaces Apache Airflow internes personnalisés. Pour en savoir plus, consultez la page custom plugins dans la documentation Airflow.

À propos des plug-ins personnalisés

Lorsque vous créez un environnement, Managed Airflow crée un bucket Cloud Storage et associe ce bucket à votre environnement. Pour installer des plug-ins personnalisés, utilisez le dossier plugins du bucket de votre environnement.

Avant de commencer

  • Votre compte doit disposer d'un rôle permettant d'afficher et de modifier le contenu des buckets de votre environnement.
  • Cette méthode d'installation ne s'applique qu'aux plug-ins Airflow. Par exemple, elle ne vous permet pas d'installer des modules Python courants ni d'autres bibliothèques.
  • Les plug-ins doivent respecter les consignes du modèle de plug-ins Airflow guidelines.

  • Managed Airflow (3e génération) n'est pas compatible avec les plug-ins personnalisés pour le planificateur Airflow et le déclencheur Airflow. Les plug-ins ne sont pas synchronisés avec ces composants de votre environnement. Cela inclut les fonctionnalités d'Airflow qui reposent sur des plug-ins, tels que les TimeTables personnalisés et les écouteurs au niveau du DAG . Les écouteurs au niveau des tâches et les TimeTables intégrés sont compatibles.

Installer un plug-in

Pour installer un plug-in personnalisé dans votre environnement Managed Airflow, copiez le code du plug-in dans le dossier plugins du bucket de votre environnement.

Pour installer un plug-in, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Recherchez votre environnement et suivez le lien DAG.

  3. Remontez d'un niveau, puis accédez au dossier plugins/.

  4. Importez vos fichiers de plug-in. Pour plus d'informations sur l'importation d'objets, consultez la page Importer des objets.

gcloud

Exécutez la commande gcloud suivante :

gcloud composer environments storage plugins import \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    --source PATH_TO_LOCAL_FILE \
    --destination PATH_IN_SUBFOLDER

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • PATH_TO_LOCAL_FILE par le chemin d'accès du fichier à importer.
  • (Facultatif) PATH_IN_SUBFOLDER par le chemin d'accès au sous-dossier. Utilisez l'argument --destination pour importer un plug-in dans un sous-dossier du dossier plugins. Sinon, omettez l'argument --destination.

Afficher la liste des plug-ins

Console

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Recherchez votre environnement et suivez le lien DAG.

  3. Remontez d'un niveau, puis accédez au dossier plugins/.

  4. Affichez les fichiers du plug-in.

gcloud

Exécutez la commande gcloud suivante :

gcloud composer environments storage plugins list \
    --environment ENVIRONMENT_NAME \
    --location LOCATION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Supprimer un plug-in

Pour supprimer un plug-in de votre environnement Managed Airflow, supprimez le code du plug-in dans le dossier plugins du bucket de l'environnement.

Pour supprimer un plug-in, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Recherchez votre environnement et suivez le lien DAG.

  3. Remontez d'un niveau, puis accédez au dossier plugins/.

  4. Supprimez les fichiers du plug-in. Pour plus d'informations, consultez la section Supprimer des objets.

gcloud

Exécutez la commande gcloud suivante :

gcloud composer environments storage plugins delete \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    PLUGIN_TO_DELETE

Télécharger des plug-ins

Pour télécharger des plug-ins, choisissez une option parmi les suivantes :

Console

  1. Dans la Google Cloud console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Recherchez votre environnement et suivez le lien DAG.

  3. Remontez d'un niveau, puis accédez au dossier plugins/.

  4. Téléchargez les fichiers du plug-in. Pour en savoir plus sur la suppression d'objets, consultez la page Télécharger des objets.

gcloud

Exécutez la commande gcloud suivante :

gcloud composer environments storage plugins export \
  --environment ENVIRONMENT_NAME \
  --location LOCATION \
  --destination PATH_TO_LOCAL_DESTINATION \
  --source PATH_IN_FOLDER

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • PATH_TO_LOCAL_DESTINATION par la destination du fichier téléchargé.
  • (Facultatif) --source est une option permettant de télécharger un seul plug-in. PATH_IN_FOLDER est le chemin d'accès au dossier.

Désactiver les plug-ins du serveur Web

Dans Managed Airflow (3e génération), si vous rencontrez des problèmes avec l'interface utilisateur d'Airflow, vous pouvez désactiver les plug-ins du serveur Web sans avoir à les supprimer du bucket de l'environnement.

gcloud

Les arguments suivants de la Google Cloud CLI désactivent et activent les plug-ins du serveur Web :

  • --no-support-web-server-plugins : désactiver les plug-ins du serveur Web
  • --support-web-server-plugins : activer les plug-ins du serveur Web

Pour désactiver les plug-ins du serveur Web, exécutez la commande suivante de la Google Cloud CLI :

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --no-support-web-server-plugins

Pour activer les plug-ins du serveur Web, exécutez la commande suivante de la Google Cloud CLI :

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --support-web-server-plugins

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de l'environnement
  • LOCATION : région dans laquelle se trouve l'environnement

API

  1. Créez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.software_config.web_server_plugins_mode.

    2. Dans le corps de la requête, dans le champ web_server_plugins_mode :

      • Spécifiez PLUGINS_DISABLED pour désactiver les plug-ins du serveur Web.
      • Spécifiez PLUGINS_ENABLED pour activer les plug-ins du serveur Web.

Exemple (désactiver les plug-ins) :

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_DISABLED"
   }
}

Exemple (activer les plug-ins) :

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_ENABLED"
   }
}

Résoudre les problèmes liés aux plug-ins

Les plug-ins entraînent des problèmes avec l'interface utilisateur d'Airflow

Vous pouvez désactiver les plug-ins du serveur Web sans les supprimer. Pour en savoir plus, consultez la section Désactiver les plug-ins du serveur Web.

Un plug-in récemment importé n'est pas visible dans l'interface utilisateur d'Airflow

Si vous utilisez le contrôle des accès à l'interface utilisateur d'Airflow, le plug-in récemment importé peut ne pas être visible dans l'interface utilisateur d'Airflow. Pour résoudre ce problème, demandez à l'administrateur de l'interface utilisateur d'Airflow de configurer l'accès au plug-in récemment importé ou attribuez-vous le rôle Admin dans l'interface utilisateur d'Airflow.

Étape suivante