Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette section explique comment créer, configurer et exécuter un environnement Airflow local à l'aide de l'outil CLI de développement local Composer.
À propos de l'outil CLI de développement local de Composer
L'outil CLI de développement local Composer simplifie le développement de DAG Apache Airflow pour Cloud Composer en exécutant localement un environnement Airflow. Ce l'environnement Airflow local utilise une image d'un Cloud Composer spécifique ; version.
Vous pouvez créer un environnement Airflow local basé sur un Cloud Composer. Dans ce cas, l'opérateur Airflow local prend la liste des packages PyPI installés et des variable d'environnement de votre environnement Cloud Composer.
Vous pouvez utiliser cet environnement Airflow local à des fins de test et de développement à des fins spécifiques, par exemple pour tester le nouveau code du DAG, les packages PyPI ou la configuration Airflow. options.
Avant de commencer
L'outil CLI de développement local de Composer crée des environnements Airflow locaux dans un dans lequel vous exécutez la commande
composer-dev create
. Pour accéder à votre l'environnement Airflow local, exécutez les commandes de l'outil dans le chemin d'accès que vous avez initialement créé l'environnement local. Toutes les données pour environnement local est stocké dans un sous-répertoire du chemin d'accès que vous avez créé l'environnement local:./composer/<local_environment_name>
.Votre ordinateur doit disposer de suffisamment d'espace disque pour stocker Cloud Composer images. L'outil CLI de développement local Composer stocke un fichier image pour chaque Version de Cloud Composer. Par exemple, si vous disposez de deux les environnements Airflow avec différentes versions de Cloud Composer, L'outil CLI de développement local Composer stocke deux instances Cloud Composer images.
L'outil CLI de développement local de Composer utilise une sortie colorée. Vous pouvez désactiver résultat colorisé avec la variable
NO_COLOR=1
:NO_COLOR=1 composer-dev <other commands>
Si vous n'avez qu'un seul environnement local, vous pouvez omettre le champ de toutes les commandes
composer-dev
, à l'exception derun-airflow-cmd
.Installez les dépendances de l'outil de la CLI de développement local Composer:
- Versions Python 3.7 à 3.10 avec
pip
- Google Cloud CLI
- Versions Python 3.7 à 3.10 avec
Installez Docker. Docker doit être installée et exécutée dans le système local. Pour vérifier que Docker est vous pouvez exécuter n'importe quelle commande de la CLI Docker, telle que
docker ps
.
Configurer les identifiants
Si ce n'est pas déjà fait, get new user credentials to use for Application Default Credentials (Obtenir les nouveaux identifiants utilisateur à utiliser comme identifiants par défaut de l'application) :
gcloud auth application-default login
Connectez-vous à la gcloud CLI à l'aide de votre compte Google:
gcloud auth login
Tous les appels d'API effectués par l'outil CLI de développement local Composer et les DAG sont exécuté à partir du compte que vous utilisez dans gcloud CLI. Pour exemple : si un DAG de votre environnement Airflow local lit le contenu d'une bucket Cloud Storage, ce compte doit être autorisé à pour accéder au bucket. Cette méthode diffère de celle de Cloud Composer. où le compte de service d'un environnement effectue les appels.
Installer l'outil CLI Composer en local
Clonez le dépôt de la CLI de développement local Composer:
git clone https://github.com/GoogleCloudPlatform/composer-local-dev.git
Dans le répertoire de premier niveau du dépôt cloné, exécutez la commande suivante:
pip install .
Chemin d'installation de l'outil, selon votre configuration pip
peut ne pas se trouver dans la variable PATH
. Dans ce cas, pip
affiche un avertissement.
. Vous pouvez utiliser les informations de ce message d'avertissement pour ajouter ceci
vers la variable PATH
de votre système d'exploitation.
Créer un environnement Airflow local avec une version Cloud Composer spécifique
Pour répertorier les versions disponibles de Cloud Composer, exécutez la commande suivante:
composer-dev list-available-versions --include-past-releases --limit 10
Pour créer un environnement Airflow local avec des paramètres par défaut, exécutez la commande suivante:
composer-dev create \
--from-image-version IMAGE_VERSION \
LOCAL_ENVIRONMENT_NAME
Autres paramètres:
composer-dev create \
--from-image-version IMAGE_VERSION \
--project PROJECT_ID \
--port WEB_SERVER_PORT \
--dags-path LOCAL_DAGS_PATH \
LOCAL_ENVIRONMENT_NAME
Remplacez :
IMAGE_VERSION
par le nom de l'image Cloud Composer.PROJECT_ID
par l'ID du projet.WEB_SERVER_PORT
par le port sur lequel le serveur Web Airflow doit écouter.LOCAL_DAGS_PATH
par le chemin d'accès à un répertoire local où se trouvent les fichiers DAG localisés.LOCAL_ENVIRONMENT_NAME
par le nom de cet environnement Airflow local.
Exemple :
composer-dev create \
--from-image-version composer-2.8.6-airflow-2.7.3 \
example-local-environment
Créer un environnement Airflow local à partir d'un environnement Cloud Composer
Seules les informations suivantes sont extraites d'un cluster Cloud Composer environnement:
- Version de l'image (versions de Cloud Composer et Airflow utilisé dans votre environnement).
- Liste des packages PyPI personnalisés installés dans votre environnement.
Liste commentée des noms des variables d'environnement définies dans votre environnement.
D'autres informations et paramètres de configuration de l'environnement, tels que Les fichiers DAG, l'historique d'exécution du DAG, les variables Airflow et les connexions ne sont pas copiés de votre environnement Cloud Composer.
Pour créer un environnement Airflow local à partir d'un Environnement Cloud Composer:
composer-dev create LOCAL_ENVIRONMENT_NAME \
--from-source-environment ENVIRONMENT_NAME \
--location LOCATION \
--project PROJECT_ID \
--port WEB_SERVER_PORT \
--dags-path LOCAL_DAGS_PATH
Remplacez :
LOCAL_ENVIRONMENT_NAME
par le nom de l'environnement Airflow local.ENVIRONMENT_NAME
par le nom de l'environnement Cloud Composer.LOCATION
par la région dans laquelle se trouve l'environnement Cloud Composer. localisés.PROJECT_ID
par l'ID du projet.WEB_SERVER_PORT
par un port pour le serveur Web Airflow local.LOCAL_DAGS_PATH
par un chemin d'accès à un répertoire local dans lequel se trouvent les DAG ; localisés.
Exemple :
composer-dev create example-local-environment \
--from-source-environment example-environment \
--location us-central1 \
--project example-project \
--port 8081 \
--dags-path example_directory/dags
Démarrer un environnement Airflow local
Pour démarrer un environnement Airflow local, exécutez la commande suivante:
composer-dev start LOCAL_ENVIRONMENT_NAME
Remplacez :
LOCAL_ENVIRONMENT_NAME
par le nom d'un environnement Airflow local.
Arrêter ou redémarrer un environnement Airflow local
Lorsque vous redémarrez un environnement Airflow local, la CLI de développement local Composer redémarre le conteneur Docker dans lequel l'environnement s'exécute. Tout Airflow sont arrêtés et redémarrés. Par conséquent, toutes les exécutions de DAG exécutés pendant un redémarrage sont marqués comme ayant échoué .
Pour redémarrer ou démarrer un environnement Airflow local arrêté, exécutez la commande suivante:
composer-dev restart LOCAL_ENVIRONMENT_NAME
Remplacez :
LOCAL_ENVIRONMENT_NAME
par le nom d'un environnement Airflow local.
Pour arrêter un environnement Airflow local, exécutez la commande suivante:
composer-dev stop LOCAL_ENVIRONMENT_NAME
Ajouter et mettre à jour des DAG
Les DAG sont stockés dans le répertoire que vous avez spécifié dans --dags-path
.
lors de la création de votre environnement Airflow local. Par défaut,
est ./composer/<local_environment_name>/dags
. Vous pouvez obtenir
utilisé par votre environnement avec la commande describe
.
Pour ajouter et mettre à jour des DAG, modifiez les fichiers dans ce répertoire. Vous n'avez pas besoin de votre environnement Airflow local.
Afficher les journaux de l'environnement Airflow local
Vous pouvez afficher les journaux récents d'un conteneur Docker qui exécute votre environnement Airflow local environnement. Vous pouvez ainsi surveiller les événements liés aux conteneurs et vérifier Journaux Airflow pour les erreurs telles que les conflits de dépendances causés par les packages PyPI l'installation.
Pour afficher les journaux d'un conteneur Docker qui exécute votre environnement Airflow local, procédez comme suit : exécuter:
composer-dev logs LOCAL_ENVIRONMENT_NAME --max-lines 10
Pour suivre le flux de journal, omettez l'argument --max-lines
:
composer-dev logs LOCAL_ENVIRONMENT_NAME
Exécuter une commande CLI Airflow
Vous pouvez exécuter les commandes CLI Airflow dans votre environnement Environnement Airflow.
Pour exécuter une commande de CLI Airflow:
composer-dev run-airflow-cmd LOCAL_ENVIRONMENT_NAME \
SUBCOMMAND SUBCOMMAND_ARGUMENTS
Exemple :
composer-dev run-airflow-cmd example-local-environment dags list -o table
Configurer les environnements Airflow locaux
L'outil CLI de développement local de Composer stocke les paramètres de configuration d'une interface
Environnement Airflow, comme les variables d'environnement et le package PyPI
dans le répertoire de l'environnement local
(./composer/<local_environment_name>
).
La configuration est appliquée au démarrage d'un environnement Airflow local. Pour Par exemple, si vous ajoutez des exigences conflictuelles pour les packages PyPI, Composer local L'outil de CLI de développement signale les erreurs au démarrage de l'environnement local.
Les connexions Airflow sont stockées dans la base de données de l'environnement Airflow local environnement. Vous pouvez les configurer en exécutant une CLI Airflow. ou en stockant les paramètres de connexion variables d'environnement. Pour en savoir plus sur les façons de créer et configurer des connexions, consultez Gérer les connexions dans la documentation Airflow.
Obtenir la liste des environnements Airflow locaux et leur état
Pour répertorier tous les environnements Airflow locaux disponibles et afficher leur état:
composer-dev list
Pour décrire un environnement spécifique et obtenir des informations telles que la version d'image, le chemin d'accès aux DAG et l'URL du serveur Web d'un environnement:
composer-dev describe LOCAL_ENVIRONMENT_NAME
Remplacez :
LOCAL_ENVIRONMENT_NAME
par le nom de l'environnement Airflow local.
Répertorier les images utilisées par les environnements Airflow locaux
Pour répertorier toutes les images utilisées par l'outil CLI de développement local de Composer, exécutez la commande suivante:
docker images --filter=reference='*/cloud-airflow-releaser/*/*'
Installer des plug-ins et modifier les données
Les plug-ins et les données d'un environnement Airflow local sont issus de la
au répertoire de l'environnement local: ./composer/<local_environment_name>/data
et
./composer/<local_environment_name>/plugins
).
Pour modifier le contenu des répertoires /data
et /plugins
, ajoutez ou supprimez
fichiers de ces répertoires. Docker propage automatiquement les modifications apportées aux fichiers
dans votre environnement Airflow local.
L'outil CLI de développement local Composer ne permet pas de spécifier une autre pour les données et les plug-ins.
Configurer les variables d'environnement
Pour configurer des variables d'environnement, modifiez la variables.env
dans le répertoire d'environnement:
./composer/<local_environment_name>/variables.env
Le fichier variables.env
doit contenir des définitions de clé-valeur, chacune correspondant à une ligne
variable d'environnement. Pour modifier les options de configuration Airflow, utilisez la
Format AIRFLOW__SECTION__KEY
. Pour en savoir plus sur les
variables d'environnement, consultez
Documentation de référence sur la configuration Airflow
EXAMPLE_VARIABLE=True
ANOTHER_VARIABLE=test
AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW=graph
Pour appliquer les modifications, redémarrez votre environnement Airflow local.
Installer ou supprimer des packages PyPI
Pour installer ou supprimer des packages PyPI, modifiez le fichier requirements.txt
dans
répertoire d'environnement: ./composer/<local_environment_name>/requirements.txt
.
Les exigences doivent respecter le format spécifié dans PEP-508, où chaque exigence est spécifié en minuscules et se compose du nom du package avec des options facultatives et les spécificateurs de version.
Pour appliquer les modifications, redémarrez votre environnement Airflow local.
Passer à une autre image Cloud Composer
Vous pouvez utiliser n'importe quelle image Cloud Composer avec le développement local de Composer d'interface de CLI et de basculer entre les images. Cette approche est différente de mettre à niveau votre environnement Cloud Composer, de votre environnement Airflow local sont appliqués lorsqu'il démarre.
Par exemple, après qu'une nouvelle version de Cloud Composer est vous pouvez basculer votre environnement vers la nouvelle version et conserver la configuration existante de l'environnement Airflow local. Autre exemple : vous pouvez passer d'une version d'Airflow à une autre au sein d'une Version de Cloud Composer.
Pour modifier l'image de l'environnement utilisée par votre environnement Airflow local:
Modifiez le fichier de configuration de l'environnement local:
./composer/<local_environment_name>/config.json
Modifiez la valeur du paramètre
composer_image_version
. Pour afficher les valeurs disponibles, vous pouvez répertorier les versions Cloud Composer disponibles ;Pour appliquer les modifications, redémarrez votre environnement Airflow local.
Supprimer un environnement Airflow local
Attention:Veillez à enregistrer toutes les données requises à partir de l'environnement, comme les journaux et la configuration.
Pour supprimer un environnement Airflow local, exécutez la commande suivante:
composer-dev remove LOCAL_ENVIRONMENT_NAME
Si l'environnement est en cours d'exécution, ajoutez l'option --force
pour forcer sa suppression.
Supprimer des images Docker
Pour supprimer toutes les images téléchargées par l'outil CLI de développement local Composer, exécutez la commande suivante:
docker rmi $(docker images --filter=reference='*/cloud-airflow-releaser/*/*' -q)
Dépannage
Cette section fournit des solutions aux problèmes courants.
Impossible de démarrer un environnement local sous macOS
Si vous avez installé le package composer-dev
dans un répertoire où Docker ne peut pas
votre environnement local risque de ne pas démarrer.
Par exemple, si Python est installé dans le répertoire /opt
, comme lorsque vous
installez-la avec la configuration Homebrew par défaut sous macOS,
Le package composer-dev
est également installé dans le répertoire /opt
. En effet,
Docker est conforme aux règles du bac à sable d'Apple, le répertoire /opt
n'est pas
disponibles par défaut. En outre, vous ne pouvez pas l'ajouter via l'interface utilisateur
> Ressources > Partage de fichiers).
Dans ce cas, l'outil CLI de développement local Composer génère un message d'erreur. semblable à l'exemple suivant:
Failed to create container with an error: 400 Client Error for ...
Bad Request ("invalid mount config for type "bind": bind source path does not exist:
/opt/homebrew/lib/python3.9/site-packages/composer_local_dev/docker_files/entrypoint.sh
Possible reason is that composer-dev was installed in the path that is
not available to Docker. See...")
Vous pouvez utiliser l'une des solutions suivantes:
- Installez Python ou le package
composer-dev
dans un autre répertoire : pour que Docker puisse accéder au package. - Modifiez manuellement le paramètre
~/Library/Group\ Containers/group.com.docker/settings.json
fichier et ajoutez/opt
àfilesharingDirectories
.