Exécuter un DAG Apache Airflow dans Cloud Composer 1
Cloud Composer 1 | Cloud Composer 2
Cette page explique comment créer un environnement Cloud Composer et exécuter un DAG Apache Airflow dans Cloud Composer.
Si vous débutez avec Airflow, consultez ce tutoriel pour en savoir plus sur les concepts, les objets et leur utilisation d'Airflow.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez l'API Cloud Composer
Créez un environnement
Console
Dans la console Google Cloud, accédez à la page Créer un environnement.
Dans le champ Nom, saisissez
example-environment
.Dans la liste déroulante Emplacement, sélectionnez une région pour l'environnement Cloud Composer. Pour plus d'informations sur la sélection d'une région, consultez la page Régions disponibles.
Pour les autres options de configuration de l'environnement, utilisez les valeurs par défaut fournies.
Pour créer l'environnement, cliquez sur Créer.
Attendez que l'environnement soit créé. Lorsque vous avez terminé, une coche verte s'affiche à côté du nom de l'environnement.
gcloud
Ajoutez un compte d'agent de service Cloud Composer en tant que nouveau compte principal sur le compte de service de votre environnement et attribuez-lui le rôle Extension d'agent de service de l'API Cloud Composer v2 (roles/composer.ServiceAgentV2Ext
).
Par défaut, votre environnement utilise le compte de service Compute Engine par défaut.
# Get current project's project number
PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)" \
--limit=1)
# Add the Cloud Composer v2 API Service Agent Extension role
gcloud iam service-accounts add-iam-policy-binding \
$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--member serviceAccount:service-$PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
Créez un environnement:
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement. Ce guide de démarrage rapide utiliseexample-environment
.LOCATION
par une région pour l'environnement Cloud Composer. Pour plus d'informations sur la sélection d'une région, consultez la page Régions disponibles.IMAGE_VERSION
par le nom de l'image Cloud Composer ; Ce guide utilisecomposer-1.20.12-airflow-1.10.15
pour créer un environnement avec la dernière image Cloud Composer.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
Terraform
Pour configurer cet environnement à l'aide de Terraform, ajoutez le bloc de ressources suivant à votre configuration Terraform, puis exécutez terraform apply
.
Pour utiliser ce bloc "resource", le compte de service utilisé par Terraform doit disposer d'un rôle avec l'autorisation composer.environments.create
activée. Pour en savoir plus sur le compte de service pour Terraform, consultez la documentation de référence sur la configuration du fournisseur Google.
Pour en savoir plus sur l'utilisation de Terraform pour créer un environnement Cloud Composer, consultez la documentation Terraform.
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
}
}
ENVIRONMENT_NAME
par le nom de l'environnement. Ce guide de démarrage rapide utiliseexample-environment
.LOCATION
par une région pour l'environnement Cloud Composer. Pour plus d'informations sur la sélection d'une région, consultez la page Régions disponibles.IMAGE_VERSION
par le nom de l'image Cloud Composer ; Ce guide utilisecomposer-1.20.12-airflow-1.10.15
pour créer un environnement avec la dernière image Cloud Composer.
Exemple :
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
}
}
Afficher les détails de l'environnement
Une fois la création de l'environnement terminée, vous pouvez afficher les informations de votre environnement, telles que la version de Cloud Composer, l'URL de l'interface Web Airflow et le dossier des DAG dans Cloud Storage.
Pour afficher les informations sur l'environnement, procédez comme suit :
Dans la console Google Cloud, accédez à la page Environnements.
Pour afficher la page Détails de l'environnement, cliquez sur le nom de votre environnement,
example-environment
.
Créer un DAG
Un DAG Airflow est un ensemble de tâches organisées que vous souhaitez programmer et exécuter. Les DAG sont définis dans des fichiers Python standards.
Le code Python dans quickstart.py
effectue les opérations suivantes :
- Il crée un DAG,
composer_sample_dag
, lequel s'exécute une fois par jour. - Il exécute une tâche,
print_dag_run_conf
, qui imprime la configuration de l'exécution du DAG à l'aide de l'opérateur bash.
Pour créer un DAG, créez une copie du fichier quickstart.py
sur votre machine locale.
Airflow 1
Airflow 2
Importer le DAG dans Cloud Storage
Cloud Composer ne programme que les DAG qui se trouvent dans le dossier /dags
du bucket Cloud Storage de l'environnement.
Pour programmer votre DAG, importez le fichier quickstart.py
à partir de votre ordinateur local dans le dossier /dags
de votre environnement.
Console
Dans la console Google Cloud, accédez à la page Environnements.
Pour ouvrir le dossier
/dags
, suivez le lien Dossier des graphes orientés acycliques pourexample-environment
.Sur la page "Informations sur le bucket", cliquez sur Importer des fichiers, puis sélectionnez votre copie locale de
quickstart.py
.Pour importer le fichier, cliquez sur Ouvrir.
Une fois que vous avez importé votre DAG, Cloud Composer l'ajoute à Airflow et planifie son exécution immédiate. L'affichage du DAG dans l'interface Web Airflow peut prendre quelques minutes.
gcloud
Pour importer quickstart.py
avec gcloud
, exécutez la commande suivante :
gcloud composer environments storage dags import \
--environment example-environment --location us-central1 \
--source quickstart.py
Afficher le DAG dans l'interface utilisateur d'Airflow
Chaque environnement Cloud Composer dispose d'un serveur Web qui exécute l'interface Web Airflow. Vous pouvez gérer les DAG à partir de l'interface Web d'Airflow.
Pour afficher le DAG dans l'interface Web Airflow, procédez comme suit :
Airflow 1
Dans la console Google Cloud, accédez à la page Environnements.
Pour ouvrir l'interface Web Airflow, cliquez sur le lien Airflow pour
example-environment
. L'interface utilisateur Web Airflow s'ouvre dans une nouvelle fenêtre du navigateur.Dans la barre d'outils Airflow, accédez à la page des DAG.
Pour ouvrir la page de détails des DAG, cliquez sur
composer_sample_dag
.La page du DAG présente l'arborescence, soit une représentation graphique des tâches et des dépendances du workflow.
Airflow 2
Dans la console Google Cloud, accédez à la page Environnements.
Pour ouvrir l'interface Web Airflow, cliquez sur le lien Airflow pour
example-environment
. L'interface utilisateur Web Airflow s'ouvre dans une nouvelle fenêtre du navigateur.Dans la barre d'outils Airflow, accédez à la page des DAG.
Pour ouvrir la page de détails des DAG, cliquez sur
composer_sample_dag
.La page du DAG présente l'arborescence, soit une représentation graphique des tâches et des dépendances du workflow.
Afficher les détails de l'instance de tâche dans les journaux Airflow
Le DAG que vous avez programmé inclut la tâche print_dag_run_conf
. La tâche imprime la configuration de l'exécution du DAG, que vous pouvez consulter dans les journaux Airflow de l'instance de tâche.
Pour afficher les détails de l'instance de tâche, procédez comme suit :
Airflow 1
Dans l'arborescence du DAG figurant dans l'interface Web Airflow, cliquez sur Graph View (Vue graphique).
Si vous maintenez le pointeur sur la tâche
print_dag_run_conf
, son état s'affiche.Cliquez sur la tâche
print_dag_run_conf
.Dans le menu contextuel de l'instance de tâche, vous pouvez obtenir des métadonnées et effectuer certaines actions.
Dans le menu contextuel de l'instance de tâche, cliquez sur View Log (Afficher le journal).
Dans le journal, recherchez
Running: ['bash'
pour voir le résultat de l'opérateur bash.
Airflow 2
Dans l'arborescence du DAG figurant dans l'interface Web Airflow, cliquez sur Graph View (Vue graphique).
Si vous maintenez le pointeur sur la tâche
print_dag_run_conf
, son état s'affiche.Cliquez sur la tâche
print_dag_run_conf
.Dans le menu contextuel de l'instance de tâche, vous pouvez obtenir des métadonnées et effectuer certaines actions.
Dans le menu contextuel de l'instance de tâche, cliquez sur Log (Journal).
Dans le journal, recherchez
Running command: ['bash'
pour voir le résultat de l'opérateur bash.[2021-10-04 15:27:21,029] {subprocess.py:63} INFO - Running command: ['bash', '-c', 'echo 735'] [2021-10-04 15:27:21,167] {subprocess.py:74} INFO - Output: [2021-10-04 15:27:21,168] {subprocess.py:78} INFO - 735 [2021-10-04 15:27:21,168] {subprocess.py:82} INFO - Command exited with return code 0
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :
Supprimez les ressources utilisées dans ce tutoriel:
Supprimez l'environnement Cloud Composer.
Dans la console Google Cloud, accédez à la page Environnements.
Sélectionnez
example-environment
, puis cliquez sur Supprimer.Attendez que l'environnement soit supprimé.
Supprimez le bucket de votre environnement. La suppression de l'environnement Cloud Composer ne supprime pas son bucket.
Dans la console Google Cloud, accédez à la page Stockage > Navigateur.
Sélectionnez le bucket de l'environnement, puis cliquez sur Supprimer. Par exemple, ce bucket peut être nommé
us-central1-example-environ-c1616fe8-bucket
.
Supprimez le disque persistant de la file d'attente Redis de votre environnement. La suppression de l'environnement Cloud Composer ne supprime pas son disque persistant.
Dans la console Google Cloud, accédez à Compute Engine > Disques.
Sélectionnez le disque persistant de la file d'attente Redis de l'environnement, puis cliquez sur Supprimer.
Par exemple, ce disque peut être nommé
gke-us-central1-exampl-pvc-b12055b6-c92c-43ff-9de9-10f2cc6fc0ee
. Les disques pour Cloud Composer 1 sont toujours de typeStandard persistent disk
et d'une taille de 2 Go.