Créer des environnements Managed Service pour Apache Airflow

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

Cette page explique comment créer un environnement Managed Airflow.

Avant de commencer

Étape 1 : Créer ou choisir un compte de service d'environnement

Lorsque vous créez un environnement, vous spécifiez un compte de service. Ce compte de service est appelé compte de service de l'environnement. Votre environnement utilise ce compte de service pour effectuer la plupart des opérations.

Le compte de service de votre environnement n'est pas un compte utilisateur. Un compte de service est un type de compte particulier utilisé par une application ou une instance de machine virtuelle (VM), et non par une personne.

Vous ne pourrez pas modifier le compte de service de votre environnement par la suite.

Si vous ne disposez pas encore d'un compte de service pour les environnements Managed Airflow dans votre projet, créez-en un.

Consultez Créer des environnements (Terraform) pour obtenir un exemple détaillé de création d'un compte de service pour votre environnement dans Terraform.

Pour créer un compte de service pour votre environnement :

  1. Créez un compte de service comme décrit dans la documentation Identity and Access Management.

  2. Attribuez-lui un rôle, comme décrit dans la documentation Identity and Access Management. Le rôle requis est Composer Worker (composer.worker).

  3. Pour accéder à d'autres ressources de votre projet Google Cloud , accordez à ce compte de service des autorisations supplémentaires pour accéder à ces ressources. Le rôle Nœud de calcul Composer (composer.worker) fournit cet ensemble d'autorisations requises dans la plupart des cas. N'ajoutez des autorisations supplémentaires à ce compte de service que lorsque cela est nécessaire au fonctionnement de vos DAG.

Étape 2 : Configuration de base

Cette étape crée un environnement Managed Airflow avec des paramètres par défaut à l'emplacement spécifié.

Toutes les autres étapes de ce guide expliquent comment personnaliser et configurer différents aspects de votre environnement. Toutes les étapes restantes sont facultatives.

Console

  1. Dans la console Google Cloud , accédez à la page Créer un environnement.

    Accéder à la page "Créer un environnement"

  2. Dans le champ Nom, saisissez le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.

  3. Dans la liste déroulante Emplacement, choisissez un emplacement pour votre environnement.

    Un emplacement est la région dans laquelle se trouve l'environnement.

  4. Dans la liste déroulante Version d'image, sélectionnez une image Managed Airflow avec la version d'Airflow requise.

  5. Dans la liste déroulante Compte de service, sélectionnez un compte de service pour votre environnement.

    Si vous n'avez pas encore de compte de service pour votre environnement, consultez Créer ou choisir un compte de service pour un environnement.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION \
    --service-account "SERVICE_ACCOUNT"

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.

  • LOCATION par la région de l'environnement.

    Un emplacement est la région où se trouve l'environnement.

  • SERVICE_ACCOUNT par le compte de service de votre environnement.

  • IMAGE_VERSION par le nom d'une image Managed Airflow.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
"

API

Rédigez une requête API environments.create. Spécifiez la configuration dans la ressource Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "IMAGE_VERSION"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • PROJECT_ID par l'ID du projet.

  • LOCATION par la région de l'environnement.

    Un emplacement est la région dans laquelle se trouve l'environnement.

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.

  • IMAGE_VERSION par le nom d'une image Managed Airflow.

  • SERVICE_ACCOUNT par le compte de service de votre environnement.

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-3-airflow-2.11.1-build.20"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Pour créer un environnement avec des paramètres par défaut à un emplacement spécifié, ajoutez le bloc de ressources suivant à votre configuration Terraform, puis exécutez terraform apply.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.

  • LOCATION par la région de l'environnement.

    Un emplacement est la région dans laquelle se trouve l'environnement.

  • IMAGE_VERSION par le nom d'une image Managed Airflow.

  • SERVICE_ACCOUNT par le compte de service de votre environnement.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-3-airflow-2.11.1-build.20"
    }
    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Étape 3 : (Facultatif) Activer le mode Développement

Les environnements en mode développement peuvent être utilisés pour tester et développer des DAG avant leur publication en production. Vous pouvez mettre en veille un environnement en mode développement lorsque vous ne l'utilisez pas.

Les environnements en mode développement sont soumis aux contraintes suivantes :

  • Uniquement Managed Airflow (3e génération) avec Airflow 3.
  • Mode de résilience standard uniquement.
  • Taille d'environnement réduite et limites de ressources par défaut fournies par le préréglage d'environnement réduit. Il n'est pas possible de modifier le nombre de composants Airflow ni les limites de ressources d'un environnement en mode développement.

Console

Sur la page Créer un environnement :

  1. Dans Version de l'image, sélectionnez une version avec Airflow 3.
  2. Sélectionnez Mode Développement.

gcloud

Lorsque vous créez un environnement, l'argument --enable-development-mode active le mode Développement :

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-3 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-development-mode

API

Lorsque vous créez un environnement, dans la ressource Environment, définissez le champ mode sur DEVELOPMENT :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "mode": "DEVELOPMENT"
}

Exemple :


// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
    "mode": "DEVELOPMENT"
}

Terraform

La compatibilité de Terraform avec cette fonctionnalité n'est pas encore disponible.

Une fois votre environnement en mode développement créé, il sera en cours d'exécution. Vous pouvez l'hiberner ou la réactiver à tout moment.

Étape 4 : (Facultatif) Configurer les paramètres de scaling et de performances de l'environnement

Pour spécifier la configuration de scaling et de performances de votre environnement, sélectionnez la taille de l'environnement et la configuration des charges de travail.

Vous pouvez modifier tous les paramètres de performances et de mise à l'échelle après avoir créé un environnement.

Les paramètres suivants contrôlent le scaling et les performances :

  • Taille de l'environnement Contrôle les paramètres de performances de l'infrastructure Managed Airflow gérée, qui inclut la base de données Airflow. Pensez à choisir une taille d'environnement plus grande si vous souhaitez exécuter un nombre important de DAG et de tâches avec des performances d'infrastructure plus élevées. Par exemple, une taille d'environnement plus importante augmente la quantité d'entrées de journal des tâches Airflow que votre environnement peut traiter avec un délai minimal.

  • Configuration des charges de travail. Contrôle l'échelle et les performances des composants Airflow qui s'exécutent dans un cluster GKE de votre environnement.

    • Programmeur Airflow. Analyse les fichiers DAG, planifie l'exécution des DAG en fonction de l'intervalle de programmation et met en file d'attente les tâches que les nœuds de calcul Airflow exécuteront.

      Votre environnement peut exécuter plusieurs programmeurs Airflow à la fois. Utilisez plusieurs planificateurs pour répartir la charge entre les instances de planificateur, et ainsi améliorer les performances et la fiabilité.

      L'augmentation du nombre de programmeurs n'améliore pas toujours les performances d'Airflow. Par exemple, un seul programmeur peut offrir de meilleures performances que deux. Cela peut se produire lorsque le programmeur supplémentaire n'est pas utilisé et consomme donc des ressources de votre environnement sans contribuer aux performances globales. Les performances réelles du programmeur dépendent du nombre de nœuds de calcul Airflow, du nombre de DAG et de tâches exécutés dans votre environnement, ainsi que de la configuration d'Airflow et de l'environnement.

      Nous vous recommandons de commencer par deux programmeurs, puis de surveiller les performances de votre environnement. Si vous modifiez le nombre de programmeurs, vous pouvez toujours rétablir l'échelle du nombre de programmeurs d'origine de votre environnement.

      Pour en savoir plus sur la configuration de plusieurs programmeurs, consultez la documentation Airflow.

    • Déclencheur Airflow. Surveille de manière asynchrone toutes les tâches différées de votre environnement. Si vous disposez d'au moins une instance de déclencheur dans votre environnement (ou au moins deux dans les environnements à haute résilience), vous pouvez utiliser des opérateurs différables dans vos DAG.

      Dans Managed Airflow (3e génération), le déclencheur Airflow est activé par défaut. Si vous souhaitez créer un environnement sans déclencheur, définissez le nombre de déclencheurs sur zéro.

    • Processeur DAG Airflow Traite les fichiers DAG et les transforme en objets DAG. Dans Managed Airflow (3e génération), cette partie du planificateur s'exécute en tant que composant d'environnement distinct.

    • Serveur Web Airflow. Exécute l'interface Web Airflow, qui vous permet de surveiller, de gérer et de visualiser vos DAG.

    • Nœuds de calcul Airflow. Exécuter des tâches planifiées par les programmeurs Airflow Le nombre minimal et maximal de nœuds de calcul de votre environnement change de façon dynamique en fonction du nombre de tâches de la file d'attente.

Console

Vous pouvez sélectionner un préréglage pour votre environnement. Lorsque vous sélectionnez un préréglage, les paramètres de scaling et de performances de ce préréglage sont automatiquement sélectionnés. Vous avez également la possibilité de sélectionner un préréglage prédéfini personnalisé et de spécifier tous les paramètres d'évolutivité et de performances de votre environnement.

Pour sélectionner la configuration de scaling et de performances de votre environnement, sur la page Créer un environnement :

  • Pour utiliser des valeurs prédéfinies, dans la section Ressources de l'environnement, cliquez sur Petite, Moyenne, Grande ou Très grande.

  • Pour spécifier des valeurs personnalisées pour les paramètres de scaling et de performances, procédez comme suit :

    1. Dans la section Ressources d'environnement, cliquez sur Personnalisées.

    2. Dans la section Planificateur, définissez le nombre de planificateurs que vous souhaitez utiliser, ainsi que l'allocation de ressources pour leur processeur, leur mémoire et leur stockage.

    3. Dans la section Déclencheur, utilisez le champ Nombre de déclencheurs pour saisir le nombre de déclencheurs dans votre environnement.

      Si vous ne souhaitez pas utiliser d'opérateurs différables dans vos DAG, définissez le nombre de déclencheurs sur zéro.

      Si vous définissez au moins un déclencheur pour votre environnement, utilisez les champs Processeur et Mémoire pour configurer l'allocation de ressources pour vos déclencheurs.

    4. Dans la section Processeur DAG, spécifiez le nombre de processeurs DAG dans votre environnement, ainsi que la quantité de processeurs, de mémoire et de stockage pour chaque processeur DAG.

      Les environnements très résilients nécessitent au moins deux processeurs DAG.

    5. Dans la section Serveur Web, spécifiez la quantité de processeurs, de mémoire et de stockage pour le serveur Web.

    6. Dans la section Worker (Worker), spécifiez les éléments suivants :

      • Nombre minimal et maximal de nœuds de calcul pour les limites d'autoscaling dans votre environnement.
      • L'allocation du processeur, de la mémoire et du stockage pour vos nœuds de calcul
    7. Dans la section Infrastructure de base, dans la liste déroulante Taille de l'environnement, sélectionnez la taille de l'environnement.

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de scaling et de performances de votre environnement.

  • --environment-size spécifie la taille de l'environnement.
  • --scheduler-count spécifie le nombre de programmeurs.
  • --scheduler-cpu spécifie le nombre de processeurs pour un programmateur Airflow.
  • --scheduler-memory spécifie la quantité de mémoire pour un programmeur Airflow.
  • --scheduler-storage spécifie la quantité d'espace disque pour un planificateur Airflow.

  • --triggerer-count spécifie le nombre de déclencheurs Airflow dans votre environnement. La valeur par défaut de cette option est 0. Vous avez besoin de déclencheurs si vous souhaitez utiliser des opérateurs différables dans vos DAG.

    • Pour les environnements à résilience standard, utilisez une valeur comprise entre 0 et 10.
    • Pour les environnements hautement résilients, utilisez 0 ou une valeur comprise entre 2 et 10.
  • --triggerer-cpu spécifie le nombre de processeurs pour un déclencheur Airflow, en unités de processeurs virtuels. Valeurs autorisées : 0.5, 0.75, 1. La valeur par défaut est 0.5.

  • --triggerer-memory spécifie la quantité de mémoire pour un déclencheur Airflow, en Go. La valeur par défaut est 0.5.

    La mémoire minimale requise est égale au nombre de processeurs alloués aux déclencheurs. La valeur maximale autorisée est égale au nombre de processeurs du déclencheur multiplié par 6,5.

    Par exemple, si vous définissez l'option --triggerer-cpu sur 1, la valeur minimale pour --triggerer-memory est 1 et la valeur maximale est 6.5.

  • --dag-processor-count spécifie le nombre de processeurs DAG dans votre environnement.

    Les environnements hautement résilients nécessitent au moins deux processeurs DAG.

  • --dag-processor-cpu spécifie le nombre de processeurs pour le processeur DAG.

  • --dag-processor-memory spécifie la quantité de mémoire pour le processeur de DAG.

  • --dag-processor-storage spécifie la quantité d'espace disque pour le processeur DAG.

  • --web-server-cpu spécifie le nombre de processeurs pour le serveur Web Airflow.

  • --web-server-memory spécifie la quantité de mémoire pour le serveur Web Airflow.

  • --web-server-storage spécifie la quantité d'espace disque pour le serveur Web Airflow.

  • --worker-cpu spécifie le nombre de processeurs pour un nœud de calcul Airflow.

  • --worker-memory spécifie la quantité de mémoire pour un nœud de calcul Airflow.

  • --worker-storage spécifie la quantité d'espace disque pour un nœud de calcul Airflow.

  • --min-workers spécifie le nombre minimal de nœuds de calcul Airflow. Le cluster de votre environnement exécute au moins ce nombre de nœuds de calcul.

  • --max-workers spécifie le nombre maximal de nœuds de calcul Airflow. Le cluster de votre environnement exécute au maximum ce nombre de nœuds de calcul.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --environment-size ENVIRONMENT_SIZE \
    --scheduler-count SCHEDULER_COUNT \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --dag-processor-count DAG_PROCESSOR_COUNT \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE \
    --min-workers WORKERS_MIN \
    --max-workers WORKERS_MAX

Remplacez :

  • ENVIRONMENT_SIZE avec small, medium, large, extra-large.
  • SCHEDULER_COUNT par le nombre de programmeurs.
  • SCHEDULER_CPU par le nombre de processeurs d'un programmeur, en unités de processeurs virtuels.
  • SCHEDULER_MEMORY par la quantité de mémoire d'un programmeur.
  • SCHEDULER_STORAGE par la taille du disque d'un programmeur.
  • TRIGGERER_COUNT par le nombre de déclencheurs.
  • TRIGGERER_CPU par le nombre de processeurs pour un déclencheur, en unités de vCPU.
  • TRIGGERER_MEMORY avec la quantité de mémoire pour un déclencheur, en Go.

  • DAG_PROCESSOR_COUNT par le nombre de processeurs DAG.

  • DAG_PROCESSOR_CPU par le nombre de processeurs pour le processeur DAG.

  • DAG_PROCESSOR_MEMORY par la quantité de mémoire du processeur DAG.

  • DAG_PROCESSOR_STORAGE par la quantité d'espace disque pour le processeur DAG.

  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.

  • WEB_SERVER_MEMORY par la quantité de mémoire du serveur Web.

  • WEB_SERVER_STORAGE par la quantité de mémoire du serveur Web.

  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.

  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul.

  • WORKER_STORAGE par l'espace disque pour un nœud de calcul.

  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.

  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --environment-size small \
    --scheduler-count 1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB \
    --scheduler-storage 2GB \
    --triggerer-count 1 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5GB \
    --dag-processor-count 1 \
    --dag-processor-cpu 0.5 \
    --dag-processor-memory 2GB \
    --dag-processor-storage 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB \
    --min-workers 2 \
    --max-workers 4

API

Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig > WorkloadsConfig, spécifiez les paramètres de performances et d'échelle de l'environnement.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE,
        "count": SCHEDULER_COUNT
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      },
      "dagProcessor": {
        "count": DAG_PROCESSOR_COUNT,
        "cpu": DAG_PROCESSOR_CPU,
        "memoryGb": DAG_PROCESSOR_MEMORY,
        "storageGb": DAG_PROCESSOR_STORAGE
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE,
        "minCount": WORKERS_MIN,
        "maxCount": WORKERS_MAX
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • SCHEDULER_CPU par le nombre de processeurs d'un programmeur, en unités de vCPU.
  • SCHEDULER_MEMORY par la quantité de mémoire d'un programmeur, en Go.
  • SCHEDULER_STORAGE par la taille du disque pour un planificateur, en Go.
  • SCHEDULER_COUNT par le nombre de programmeurs.

  • TRIGGERER_COUNT par le nombre de déclencheurs. La valeur par défaut est 0. Vous avez besoin de déclencheurs si vous souhaitez utiliser des opérateurs différables dans vos DAG.

    • Pour les environnements de résilience standards, utilisez une valeur comprise entre 0 et 10.
    • Pour les environnements hautement résilients, utilisez 0 ou une valeur comprise entre 2 et 10.

    Si vous utilisez au moins un déclencheur, vous devez également spécifier les paramètres TRIGGERER_CPU et TRIGGERER_MEMORY :

  • TRIGGERER_CPU spécifie le nombre de processeurs pour un déclencheur, en unités de vCPU. Valeurs autorisées : 0.5, 0.75, 1.

  • TRIGGERER_MEMORY configure la quantité de mémoire pour un déclencheur. La mémoire minimale requise est égale au nombre de processeurs alloués aux déclencheurs. La valeur maximale autorisée est égale au nombre de processeurs du déclencheur multiplié par 6,5.

    Par exemple, si vous définissez TRIGGERER_CPU sur 1, la valeur minimale pour TRIGGERER_MEMORY est 1 et la valeur maximale est 6.5.

  • DAG_PROCESSOR_COUNT par le nombre de processeurs DAG.

    Les environnements hautement résilients nécessitent au moins deux processeurs DAG.

  • DAG_PROCESSOR_CPU par le nombre de processeurs pour le processeur DAG, en unités de vCPU.

  • DAG_PROCESSOR_MEMORY avec la quantité de mémoire du processeur DAG, en Go.

  • DAG_PROCESSOR_STORAGE par la quantité d'espace disque pour le processeur DAG, en Go.

  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.

  • WEB_SERVER_MEMORY par la quantité de mémoire pour le serveur Web, en Go.

  • WEB_SERVER_STORAGE par l'espace disque pour le serveur Web, en Go.

  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.

  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul, en Go.

  • WORKER_STORAGE par l'espace disque pour un nœud de calcul, en Go.

  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.

  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

  • ENVIRONMENT_SIZE par la taille de l'environnement : ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM, ENVIRONMENT_SIZE_LARGE, ENVIRONMENT_SIZE_EXTRA_LARGE.

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": 2.5,
        "memoryGb": 2.5,
        "storageGb": 2,
        "count": 1
      },
      "triggerer": {
        "cpu": 0.5,
        "memoryGb": 0.5,
        "count": 1
      },
      "dagProcessor": {
        "count": 1,
        "cpu": 0.5,
        "memoryGb": 2,
        "storageGb": 1
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de scaling et de performances de votre environnement.

  • Dans le bloc config :

    • Le champ environment_size contrôle la taille de l'environnement.
  • Dans le bloc workloads_config :

    • Le champ scheduler.cpu spécifie le nombre de processeurs pour un programmeur Airflow.
    • Le champ scheduler.memory_gb spécifie la quantité de mémoire pour un programmeur Airflow.
    • Le champ scheduler.storage_gb spécifie la quantité d'espace disque pour un programmeur.
    • Le champ scheduler.count spécifie le nombre de planificateurs dans votre environnement.
    • Le champ triggerer.cpu spécifie le nombre de processeurs pour un déclencheur Airflow.
    • Le champ triggerer.memory_gb spécifie la quantité de mémoire pour un déclencheur Airflow.
    • Le champ triggerer.count spécifie le nombre de déclencheurs dans votre environnement.

    • Le champ dag_processor.cpu spécifie le nombre de processeurs pour un processeur DAG.

    • Le champ dag_processor.memory_gb spécifie la quantité de mémoire pour un processeur DAG.

    • Le champ dag_processor.storage_gb spécifie la quantité d'espace disque pour un processeur DAG.

    • Le champ dag_processor.count spécifie le nombre de processeurs DAG.

      Les environnements très résilients nécessitent au moins deux processeurs DAG.

    • Le champ web_server.cpu spécifie le nombre de processeurs pour le serveur Web Airflow.

    • Le champ web_server.memory_gb spécifie la quantité de mémoire pour le serveur Web Airflow.

    • Le champ web_server.storage_gb spécifie la quantité d'espace disque pour le serveur Web Airflow.

    • Le champ worker.cpu spécifie le nombre de processeurs pour un nœud de calcul Airflow.

    • Le champ worker.memory_gb spécifie la quantité de mémoire pour un nœud de calcul Airflow.

    • Le champ worker.storage_gb spécifie la quantité d'espace disque pour un nœud de calcul Airflow.

    • Le champ worker.min_count spécifie le nombre minimal de nœuds de calcul dans votre environnement.

    • Le champ worker.max_count spécifie le nombre maximal de nœuds de calcul dans votre environnement.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
      dag_processor {
        cpu = DAG_PROCESSOR_CPU
        memory_gb = DAG_PROCESSOR_MEMORY
        storage_gb = DAG_PROCESSOR_STORAGE
        count = DAG_PROCESSOR_COUNT
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

    environment_size = "ENVIRONMENT_SIZE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • SERVICE_ACCOUNT par le compte de service de votre environnement.
  • SCHEDULER_CPU par le nombre de processeurs d'un programmeur, en unités de processeurs virtuels.
  • SCHEDULER_MEMORY par la quantité de mémoire d'un programmeur, en Go.
  • SCHEDULER_STORAGE par la taille du disque pour un planificateur, en Go.
  • SCHEDULER_COUNT par le nombre de programmeurs.
  • TRIGGERER_COUNT par le nombre de déclencheurs.
  • TRIGGERER_CPU par le nombre de processeurs pour un déclencheur, en unités de vCPU.
  • TRIGGERER_MEMORY par la quantité de mémoire d'un déclencheur, en Go.

  • DAG_PROCESSOR_CPU par le nombre de processeurs pour le processeur DAG, en unités de vCPU.

  • DAG_PROCESSOR_MEMORY avec la quantité de mémoire du processeur DAG, en Go.

  • DAG_PROCESSOR_STORAGE avec la quantité d'espace disque pour le processeur DAG, en Go.

  • DAG_PROCESSOR_COUNT par le nombre de processeurs DAG.

  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.

  • WEB_SERVER_MEMORY par la quantité de mémoire pour le serveur Web, en Go.

  • WEB_SERVER_STORAGE par l'espace disque pour le serveur Web, en Go.

  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.

  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul, en Go.

  • WORKER_STORAGE par l'espace disque pour un nœud de calcul, en Go.

  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.

  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

  • ENVIRONMENT_SIZE par la taille de l'environnement : ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM, ENVIRONMENT_SIZE_LARGE, ENVIRONMENT_SIZE_EXTRA_LARGE.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {

      scheduler {
        cpu = 2.5
        memory_gb = 2.5
        storage_gb = 2
        count = 1
      }
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
      dag_processor {
        cpu = 1
        memory_gb = 2
        storage_gb = 1
        count = 1
    }
      web_server {
        cpu = 1
        memory_gb = 2.5
        storage_gb = 2
      }
      worker {
        cpu = 1
        memory_gb = 2
        storage_gb = 2
        min_count = 2
        max_count = 4
      }
    }

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Étape 5 : (Facultatif) Activer le mode Haute résilience

Les environnements Managed Airflow hautement résilients (à haute disponibilité) sont des environnements qui utilisent des mécanismes de redondance et de basculement intégrés qui réduisent la sensibilité de l'environnement aux défaillances zonales et aux pannes de point de défaillance unique.

Dans Managed Airflow (3e génération), les environnements hautement résilients sont disponibles à partir des builds Airflow composer-3-airflow-2.10.2-build.13 et composer-3-airflow-2.9.3-build.20.

Un environnement très résilient est multizonal et s'exécute dans au moins deux zones d'une région sélectionnée. Les composants suivants s'exécutent dans des zones distinctes :

Le nombre minimal de nœuds de calcul est défini sur deux, et le cluster de votre environnement répartit les instances de nœuds de calcul entre les zones. En cas de panne zonale, les instances de nœud de calcul concernées sont reprogrammées dans une autre zone. Le composant Cloud SQL d'un environnement hautement résilient comporte une instance principale et une instance de secours réparties entre les zones.

Console

Sur la page Créer un environnement :

  1. Dans la section Mode Résilience, sélectionnez Haute résilience.

  2. Dans la section Ressources de l'environnement, sélectionnez les paramètres de scaling pour un environnement hautement résilient. Les environnements hautement résilients nécessitent exactement deux programmateurs, zéro ou entre deux et dix déclencheurs, et au moins deux nœuds de calcul :

    1. Cliquez sur Custom (Personnalisé).

    2. Dans la liste déroulante Nombre de programmateurs, sélectionnez 2.

    3. Dans la liste déroulante Nombre de déclencheurs, sélectionnez 0 ou une valeur comprise entre 2 et 10. Configurez l'allocation de processeur et de mémoire pour vos déclencheurs.

    4. Dans la liste déroulante Nombre minimal de nœuds de calcul, sélectionnez 2 ou plus, en fonction du nombre de nœuds de calcul requis.

  3. Dans la section Configuration du réseau :

    1. Dans le champ Type de mise en réseau, sélectionnez Environnement d'adresse IP privée.

    2. Si nécessaire, spécifiez d'autres paramètres réseau.

gcloud

Lorsque vous créez un environnement, l'argument --enable-high-resilience active le mode haute résilience.

Définissez les arguments suivants :

  • --enable-high-resilience
  • --enable-private-environment et d'autres paramètres réseau pour un environnement IP privé, si nécessaire
  • --scheduler-count à 2
  • --triggerer-count à 0 ou une valeur comprise entre 2 et 10. Si vous utilisez des déclencheurs, les indicateurs --triggerer-cpu and--triggerer-memory` sont également requis pour la création de l'environnement.

    Pour en savoir plus sur les options --triggerer-count, --triggerer-cpu et --triggerer-memory, consultez Configurer les paramètres de scaling et de performances de l'environnement.

  • --min-workers à 2 ou plus

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-high-resilience \
    --enable-private-environment \
    --scheduler-count 2 \
    --triggerer-count 2 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5 \
    --min-workers 2

API

Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig, activez le mode haute résilience.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }

  }
}

Exemple :


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Terraform

Lorsque vous créez un environnement, le champ resilience_mode du bloc config active le mode haute résilience.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }

  }
}

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Étape 6 : (Facultatif) Spécifier une zone pour la base de données de l'environnement

Vous pouvez spécifier une zone Cloud SQL préférée lors de la création d'un environnement à résilience standard.

Console

Sur la page Créer un environnement :

  1. Dans la section Configuration avancée, développez l'élément Afficher la configuration avancée.

  2. Dans la liste Zone de la base de données Airflow, sélectionnez la zone Cloud SQL de votre choix.

gcloud

Lorsque vous créez un environnement, l'argument --cloud-sql-preferred-zone spécifie une zone Cloud SQL préférée.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --cloud-sql-preferred-zone SQL_ZONE

Remplacez les éléments suivants :

  • SQL_ZONE : zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --cloud-sql-preferred-zone us-central1-a

API

Lorsque vous créez un environnement, dans la ressource Environment > DatabaseConfig, spécifiez la zone Cloud SQL de votre choix.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "databaseConfig": {
      "zone": "SQL_ZONE"
    },
      "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez les éléments suivants :

  • SQL_ZONE : zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.

Exemple :


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "databaseConfig": {
      "zone": "us-central1-a"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Lorsque vous créez un environnement, le champ zone du bloc database_config spécifie la zone Cloud SQL préférée.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    database_config {
      zone = "SQL_ZONE"
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez les éléments suivants :

  • SQL_ZONE : zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.

Étape 7 : (Facultatif) Configurer la mise en réseau de votre environnement

Vous pouvez configurer la mise en réseau Managed Airflow (3e génération) de différentes manières :

  • Dans un environnement d'adresse IP publique, les composants Airflow de votre environnement peuvent accéder à Internet.
  • Dans un environnement d'adresse IP privée, les composants Airflow de votre environnement n'ont pas accès à Internet.
  • Les environnements d'adresses IP privées et d'adresses IP publiques peuvent se connecter à votre réseau VPC en tant qu'option distincte.
  • Vous pouvez spécifier la plage d'adresses IP internes de votre environnement. Cette plage ne peut pas être modifiée ultérieurement.
  • Vous pouvez activer l'accès à Internet lors de l'installation de packages PyPI. Par exemple, votre environnement d'adresse IP privée peut toujours installer des packages PyPI à partir de l'index de packages Python si vous activez cette option.

  • Pour un environnement VPC partagé, vous devez effectuer une configuration réseau supplémentaire pour le projet hôte, puis créer un environnement d'adresse IP publique ou privée dans un projet de service. Suivez les instructions de la page Configurer un VPC partagé.

Console

  1. Assurez-vous que votre réseau est configuré pour le type d'environnement que vous souhaitez créer.

  2. Dans la section Configuration réseau, développez l'élément Afficher la configuration réseau.

  3. Si vous souhaitez connecter votre environnement à un réseau VPC, sélectionnez un rattachement de réseau dans le champ Rattachement de réseau. Vous pouvez également créer un rattachement de réseau. Pour en savoir plus, consultez Connecter un environnement à un réseau VPC.

  4. Si vous souhaitez créer un environnement avec adresse IP privée, sélectionnez l'option Environnement avec adresse IP privée dans la section Type de réseau.

  5. Pour ajouter des tags réseau, consultez Ajouter des tags réseau.

gcloud

Assurez-vous que votre mise en réseau est configurée pour le type d'environnement que vous souhaitez créer.

Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de mise en réseau. Si vous omettez un paramètre, la valeur par défaut est utilisée.

  • --enable-private-environment active un environnement d'adresse IP privée.

  • --network spécifie l'ID de votre réseau VPC.

  • --subnetwork spécifie l'ID de votre sous-réseau VPC.

Exemple (environnement d'adresse IP privée avec un réseau VPC connecté)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \

Remplacez :

  • NETWORK_ID par votre ID de réseau VPC ;
  • SUBNETWORK_ID par votre ID de sous-réseau VPC ;

Étape 8 : (Facultatif) Ajouter des tags réseau

Les tags réseau sont appliqués à toutes les VM de nœud du cluster de votre environnement. Les tags servent à identifier les sources ou les cibles valides pour les pare-feu de réseau. Chaque tag de la liste doit respecter la norme RFC 1035.

Par exemple, vous pouvez ajouter des tags réseau si vous prévoyez de limiter le trafic d'un environnement d'adresse IP privée avec des règles de pare-feu.

Console

Sur la page Créer un environnement :

  1. Recherchez la section Configuration du réseau.
  2. Dans le champ Tags réseau, saisissez les tags réseau de votre environnement.

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent les tags réseau :

  • --tags spécifie une liste de tags réseau séparés par une virgule, appliqués à toutes les VM de nœud.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --tags TAGS

Remplacez :

  • TAGS par une liste de tags réseau séparés par une virgule.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --tags group1,production

API

Lorsque vous créez un environnement, spécifiez des tags réseau pour votre environnement dans la ressource Environment > EnvironmentConfig.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "tags": [
        "TAG"
      ],
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • TAG avec un tag réseau.

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "tags": [
        "group1",
        "production"
      ],
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Lorsque vous créez un environnement, les champs suivants définissent les tags réseau pour votre environnement :

  • Le champ tags du bloc node_config spécifie une liste de tags réseau séparés par une virgule, appliqués à toutes les VM de nœud.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • TAGS par une liste de tags réseau séparés par une virgule.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      tags = ["group1","production"]
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Étape 9 : (Facultatif) Configurer l'accès réseau au serveur Web

Les paramètres d'accès au serveur Web Airflow ne dépendent pas du type de votre environnement. Vous pouvez configurer l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours laisser l'interface utilisateur d'Airflow accessible depuis Internet.

Vous ne pouvez pas configurer les plages d'adresses IP autorisées à l'aide d'adresses IP privées.

Console

Sur la page Créer un environnement :

  1. Dans la section Configuration du réseau, développez l'élément Afficher la configuration du réseau.

  2. Dans la section Contrôle de l'accès réseau au serveur Web :

    • Pour autoriser l'accès au serveur Web Airflow depuis toutes les adresses IP, sélectionnez Autoriser l'accès depuis toutes les adresses IP.

    • Pour limiter l'accès à des plages d'adresses IP spécifiques, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques. Dans le champ Plage d'adresses IP, spécifiez une plage d'adresses IP au format CIDR. Dans le champ Description, spécifiez une description facultative pour cette plage. Si vous souhaitez spécifier plusieurs plages, cliquez sur Ajouter une plage d'adresses IP.

    • Pour refuser l'accès pour toutes les adresses IP, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques, puis cliquez sur Supprimer l'élément à côté de l'entrée de plage vide.

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent le niveau d'accès du serveur Web :

  • --web-server-allow-all permet d'accéder à Airflow depuis toutes les adresses IP. Il s'agit de l'option par défaut.

  • --web-server-allow-ip limite l'accès à des plages d'adresses IP sources spécifiques. Pour spécifier plusieurs plages d'adresses IP, utilisez cet argument plusieurs fois.

  • --web-server-deny-all interdit l'accès pour toutes les adresses IP.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Remplacez :

  • WS_IP_RANGE par la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.
  • WS_RANGE_DESCRIPTION par la description de la plage d'adresses IP.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

Lorsque vous créez un environnement, spécifiez les paramètres d'accès au serveur Web dans la ressource Environment > EnvironmentConfig.

  • Pour autoriser l'accès au serveur Web Airflow depuis toutes les adresses IP, omettez webServerNetworkAccessControl.

  • Pour limiter l'accès à des plages d'adresses IP spécifiques, spécifiez une ou plusieurs plages dans allowedIpRanges.

  • Pour interdire l'accès pour toutes les adresses IP, ajoutez allowedIpRanges et faites-en une liste vide. Ne spécifiez pas de plages d'adresses IP.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    },
      "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • WS_IP_RANGE par la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.
  • WS_RANGE_DESCRIPTION par la description de la plage d'adresses IP.

Exemple :


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    },
      "nodeConfig": {
        "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Lorsque vous créez un environnement, le bloc allowed_ip_range du bloc web_server_network_access_control contient des plages d'adresses IP pouvant accéder au serveur Web.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • WS_IP_RANGE par la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.
  • WS_RANGE_DESCRIPTION par la description de la plage d'adresses IP.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }
    }

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

}

Étape 10 : Spécifier les remplacements de configuration Airflow et les variables d'environnement

Vous pouvez configurer des remplacements de configuration Airflow et des variables d'environnement lorsque vous créez un environnement. Vous pouvez également effectuer cette opération ultérieurement, après la création de votre environnement.

Certaines options de configuration Airflow sont bloquées et vous ne pouvez pas les remplacer.

Pour obtenir la liste des options de configuration Airflow disponibles, consultez les références de configuration pour Airflow 2 et Airflow 1.10.*.

Pour spécifier les remplacements de configuration Airflow et les variables d'environnement, procédez comme suit :

Console

Sur la page Créer un environnement :

  1. Dans la section Variables d'environnement, cliquez sur Ajouter une variable.

  2. Renseignez les champs Nom et Valeur de la variable d'environnement.

  3. Dans la section Remplacements de configuration Airflow, cliquez sur Ajouter un remplacement de configuration Airflow.

  4. Renseignez les champs Section, Clé et Valeur du remplacement de l'option de configuration.

    Exemple :

    Section Clé Valeur
    webserver dag_orientation TB

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent les variables d'environnement et les remplacements de configuration Airflow :

  • --env-variables spécifie une liste de variables d'environnement séparées par des virgules.

    Les noms des variables peuvent contenir des lettres majuscules et minuscules, des chiffres et des traits de soulignement, mais ils ne peuvent pas commencer par un chiffre.

  • --airflow-configs spécifie une liste de clés et de valeurs séparées par une virgule pour les remplacements de configuration Airflow.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Remplacez :

  • ENV_VARS par une liste de paires NAME=VALUE séparées par une virgule pour les variables d'environnement.
  • CONFIG_OVERRIDES avec une liste de paires SECTION-KEY=VALUE séparées par une virgule pour les remplacements de configuration. Séparez le nom de la section de configuration par un symbole -, suivi du nom de la clé. Exemple : core-dags_are_paused_at_creation.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
    --airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB

API

Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig, spécifiez les variables d'environnement et les remplacements de configuration Airflow.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "SECTION-KEY": "OVERRIDE_VALUE"
      },
      "envVariables": {
        "VAR_NAME": "VAR_VALUE",
      }
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • SECTION par la section du fichier de configuration où se trouve l'option de configuration Airflow ;
  • KEY par le nom de l'option de configuration Airflow ;
  • OVERRIDE_VALUE par la valeur de l'option de configuration Airflow ;
  • VAR_NAME par le nom de la variable d'environnement.
  • VAR_VALUE par la valeur de la variable d'environnement ;

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "core-dags_are_paused_at_creation": "True",
        "webserver-dag_orientation": "TB"
      },
      "envVariables": {
        "SENDGRID_MAIL_FROM": "user@example.com",
        "SENDGRID_API_KEY": "example-key"
      }
    },
    "nodeConfig": {
        "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Lorsque vous créez un environnement, les blocs suivants contrôlent les variables d'environnement et les remplacements de configuration Airflow :

  • Le bloc env_variables du bloc software_config spécifie des variables d'environnement.

    Les noms des variables peuvent contenir des lettres majuscules et minuscules, des chiffres et des traits de soulignement, mais ils ne peuvent pas commencer par un chiffre.

  • Le bloc airflow_config_overrides du bloc software_config spécifie les remplacements de configuration Airflow.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }

  }
}

Remplacez :

  • SECTION par la section du fichier de configuration où se trouve l'option de configuration Airflow ;
  • KEY par le nom de l'option de configuration Airflow ;
  • OVERRIDE_VALUE par la valeur de l'option de configuration Airflow ;
  • VAR_NAME par le nom de la variable d'environnement.
  • VAR_VALUE par la valeur de la variable d'environnement ;

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    software_config {

      airflow_config_overrides = {
        core-dags_are_paused_at_creation = "True"
        webserver-dag_orientation = "TB"
      }

      env_variables = {
        SENDGRID_MAIL_FROM = "user@example.com"
        SENDGRID_API_KEY = "example-key"
      }
    }

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Étape 11 : (Facultatif) Spécifier des intervalles de maintenance

Les intervalles de maintenance par défaut dans Managed Airflow (3e génération) sont définis comme suit :

  • Toutes les heures sont indiquées dans le fuseau horaire local de la région où se trouve votre environnement, mais sans tenir compte de l'heure d'été.
  • Les intervalles de maintenance du mardi, du mercredi, du jeudi et du vendredi sont compris entre 00:00:00 et 02:00:00.
  • Les samedis, dimanches et lundis, les intervalles de maintenance sont de 00:00:00 à 04:00:00.

Pour spécifier des intervalles de maintenance personnalisés pour votre environnement :

Console

Sur la page Créer un environnement

  1. Recherchez la section Intervalles de maintenance.

  2. Dans la liste déroulante Fuseau horaire, choisissez un fuseau horaire pour les intervalles de maintenance.

  3. Définissez Heure de début, Jours et Durée de sorte que :

    • Au moins 12 heures sont allouées au cours d'une même semaine.

    • Vous pouvez utiliser plusieurs créneaux horaires, mais chacun doit durer au moins quatre heures.

    Par exemple, une période de quatre heures tous les lundis, mercredis et vendredis fournit le temps requis.

gcloud

Les arguments suivants définissent les paramètres d'intervalles de maintenance :

  • --maintenance-window-start définit l'heure de début d'un intervalle de maintenance.
  • --maintenance-window-end définit l'heure de fin d'un intervalle de maintenance.
  • --maintenance-window-recurrence définit la récurrence de l'intervalle de maintenance.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • DATETIME_START par la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.
  • DATETIME_END par la date et l'heure de fin au format "date/heure". Seule l'heure spécifiée est utilisée, la date est ignorée. La date et l'heure spécifiées doivent être postérieures à la date de début.
  • MAINTENANCE_RECURRENCE par une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :

  • Le format FREQ=DAILY indique une récurrence quotidienne.

  • Le format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA indique une récurrence les jours sélectionnés de la semaine.

L'exemple suivant spécifie un intervalle de maintenance de six heures entre 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2.11.1-build.20 \
  --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

Lorsque vous créez un environnement, spécifiez les paramètres des intervalles de maintenance dans la ressource Environment > EnvironmentConfig :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • DATETIME_START avec la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.
  • DATETIME_END par la date et l'heure de fin au format "date/heure". Seule l'heure spécifiée est utilisée, la date est ignorée. La date et l'heure spécifiées doivent être postérieures à la date de début.
  • MAINTENANCE_RECURRENCE par une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :

  • Le format FREQ=DAILY indique une récurrence quotidienne.

  • Le format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA indique une récurrence les jours sélectionnés de la semaine.

L'exemple suivant spécifie un intervalle de maintenance de six heures entre 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.

Exemple :

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Terraform

Le bloc maintenance_window spécifie les intervalles de maintenance de votre environnement :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • DATETIME_START avec la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.
  • DATETIME_END par la date et l'heure de fin au format "date/heure". Seule l'heure spécifiée est utilisée, la date est ignorée. La date et l'heure spécifiées doivent être postérieures à la date de début.
  • MAINTENANCE_RECURRENCE par une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :

    • Le format FREQ=DAILY indique une récurrence quotidienne.
    • Le format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA indique une récurrence les jours sélectionnés de la semaine.

L'exemple suivant spécifie un intervalle de maintenance de six heures entre 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Étape 12 : (Facultatif) Intégration de la traçabilité des données

La traçabilité des données est une fonctionnalité de Knowledge Catalog qui vous permet de suivre le déplacement des données.

L'intégration de la traçabilité des données est disponible dans toutes les versions de Managed Airflow (3e génération).

L'intégration de la traçabilité des données est automatiquement activée dans un nouvel environnement Managed Airflow si les conditions suivantes sont remplies :

  • L'API Data Lineage est activée dans votre projet. Pour en savoir plus, consultez Activer l'API Data Lineage dans la documentation Knowledge Catalog.

  • Aucun backend de traçabilité personnalisé n'est configuré dans Airflow.

Vous pouvez désactiver l'intégration de la traçabilité des données lorsque vous créez un environnement. Par exemple, si vous souhaitez remplacer le comportement automatique ou choisir d'activer la traçabilité des données ultérieurement, après la création de l'environnement.

Console

Pour désactiver l'intégration de la traçabilité des données, procédez comme suit sur la page Créer un environnement :

  1. Dans la section Configuration avancée, développez Afficher la configuration avancée.

  2. Dans le menu Intégration de la traçabilité Knowledge Catalog, sélectionnez Désactiver l'intégration de la traçabilité Knowledge Catalog.

gcloud

Lorsque vous créez un environnement, l'argument --disable-cloud-data-lineage-integration désactive l'intégration de la traçabilité des données.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --disable-cloud-data-lineage-integration

Remplacez :

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

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --disable-cloud-data-lineage-integration

Étape 13 : (Facultatif) Configurer le chiffrement des données (CMEK)

Par défaut, les données de votre environnement sont chiffrées à l'aide d'une clé fournie par Google.

Pour utiliser des clés de chiffrement gérées par le client (CMEK) afin de chiffrer les données dans votre environnement, suivez les instructions de la page Utiliser des clés de chiffrement gérées par le client.

Étape 14. (Facultatif) Utiliser le bucket d'un environnement personnalisé

Lorsque vous créez un environnement, Managed Airflow crée automatiquement un bucket pour votre environnement.

Vous pouvez également spécifier un bucket Cloud Storage personnalisé à partir de votre projet. Votre environnement utilise ce bucket de la même manière que le bucket créé automatiquement.

Pour utiliser un bucket d'environnement personnalisé, suivez les instructions de la section Utiliser un bucket d'environnement personnalisé.

Étape 15 : (Facultatif) Configurer la conservation de la base de données

Si vous activez la conservation de la base de données dans votre environnement, Managed Airflow supprime régulièrement de la base de données Airflow les enregistrements liés aux exécutions de DAG et aux sessions utilisateur qui sont plus anciens que la période spécifiée. Les informations sur l'exécution du DAG le plus récent sont toujours conservées.

Par défaut, la conservation de la base de données est activée. Pour configurer la période de conservation d'un nouvel environnement ou désactiver la conservation de la base de données, suivez les instructions décrites dans Configurer la règle de conservation de la base de données. Vous pouvez également configurer la conservation de la base de données ultérieurement.

Étape 16 : (Facultatif) Spécifier des libellés d'environnement

Vous pouvez attribuer des étiquettes à vos environnements pour répartir les coûts facturés en fonction de ces étiquettes.

Console

Dans la section Libellés de la page Créer un environnement :

  1. Cliquez sur Ajouter une étiquette.

  2. Dans les champs Clé et Valeur, spécifiez des paires clé/valeur pour les libellés d'environnement.

gcloud

Lorsque vous créez un environnement, l'argument --labels spécifie une liste de clés et de valeurs séparées par une virgule avec les libellés d'environnement.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --labels LABELS

Remplacez :

  • LABELS par une liste de paires KEY=VALUE séparées par une virgule pour les libellés d'environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --labels owner=engineering-team,env=production

API

Lorsque vous créez un environnement, dans la ressource Environnement, spécifiez des libellés pour votre environnement.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

Remplacez :

  • LABEL_KEY par une clé de libellé d'environnement.
  • LABEL_VALUE par une valeur du libellé d'environnement

Exemple :


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

Lorsque vous créez un environnement, spécifiez des libellés dans le bloc labels (en dehors du bloc config).

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Remplacez :

  • LABEL_KEY par une clé de libellé d'environnement.
  • LABEL_VALUE par une valeur du libellé d'environnement

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

Étape suivante