Créer des environnements Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment créer un environnement Cloud Composer 2.

Un environnement Cloud Composer est une installation Apache Airflow autonome déployée dans un cluster Google Kubernetes Engine géré. Vous pouvez créer un ou plusieurs environnements dans un même projet Google Cloud.

Avant de commencer

1. Configuration de base

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

Console

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

    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 d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et 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 le cluster GKE de l'environnement.

  4. Dans la liste déroulante Version de l'image, sélectionnez une image Cloud Composer avec la version requise d'Airflow.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et 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 le cluster GKE de l'environnement.

  • IMAGE_VERSION par le nom de l'image Cloud Composer.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3

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"
    }
  }
}

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 le cluster GKE de l'environnement.

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et 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 de l'image Cloud Composer.

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-2.6.6-airflow-2.6.3"
    }
  }
}

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"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et 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 le cluster GKE de l'environnement.

  • IMAGE_VERSION par le nom de l'image Cloud Composer.

Exemple :

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

  config {
    software_config {
      image_version = "composer-2.6.6-airflow-2.6.3"
    }
  }
}

Étape 2. (Facultatif) Sélectionnez un compte de service pour votre environnement.

Cloud Composer associe ce compte de service au compte de service Kubernetes de votre environnement. Les nœuds du cluster de votre environnement s'exécutent en tant que compte de service Kubernetes et utilisent les liaisons pour accéder aux ressources de votre projet Google Cloud, telles que les fichiers de définition de DAG dans le bucket de votre environnement.

Par défaut, les environnements Cloud Composer utilisent le compte de service Compute Engine par défaut. Nous vous recommandons de configurer un compte de service géré par l'utilisateur pour les environnements Cloud Composer.

Vous ne pourrez pas modifier le compte de service de votre environnement ultérieurement.

Console

Sur la page Créer un environnement, dans la liste déroulante Compte de service, sélectionnez un compte de service pour votre environnement.

gcloud

Lorsque vous créez un environnement, l'argument --service-account spécifie le compte de service de votre environnement.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --service-account "SERVICE_ACCOUNT"

Remplacez :

  • SERVICE_ACCOUNT par le compte de service de votre environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig, spécifiez un compte de service pour votre environnement.

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

Remplacez :

  • 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": {
    "nodeConfig": {
      "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Terraform

Lorsque vous créez un environnement, utilisez le champ service_account dans le bloc node_config.

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

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Remplacez :

  • 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 {
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Étape 3. Accorder les autorisations requises au compte de service Cloud Composer

Lorsque vous activez l'API Cloud Composer dans votre projet, le compte Agent de service Composer est créé dans votre projet. Cloud Composer utilise ce compte pour effectuer des opérations dans votre projet Google Cloud.

Le rôle Extension de l'agent de service de l'API Cloud Composer v2 fournit des autorisations supplémentaires au compte d'agent de service Cloud Composer. Ce rôle n'est pas accordé automatiquement. Vous devez l'accorder manuellement.

Console

Lorsque vous créez un environnement dans votre projet, si l'agent de service Cloud Composer ne dispose pas des autorisations requises sur le compte de service de l'environnement, une section Accorder les autorisations requises au compte de service Cloud Composer s'affiche.

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.

Confirmez que vous utilisez le compte de service prévu pour votre environnement, puis cliquez sur Accorder.

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.

gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT \
    --member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

Remplacez :

  • SERVICE_ACCOUNT par le compte de service de votre environnement.
  • PROJECT_NUMBER par le numéro de projet

Exemple :

gcloud iam service-accounts add-iam-policy-binding \
    example-account@example-project.iam.gserviceaccount.com \
    --member serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

API

Pour accorder le rôle, vous devez modifier la stratégie d'autorisation existante à l'aide du modèle lecture-modification-écriture:

  1. Lisez la stratégie d'autorisation existante pour le compte de service de votre environnement.
  2. Modifiez-le pour inclure le rôle roles/composer.ServiceAgentV2Ext pour l'agent de service Cloud Composer.
  3. Réécrivez la règle d'autorisation existante.

Pour en savoir plus, consultez la page Contrôler l'accès de manière automatisée.

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Remplacez :

Exemple :

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Terraform

Ajoutez une liaison de rôle à la stratégie d'autorisation du compte de service de votre environnement.

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.

Si vous n'utilisez pas Terraform pour définir la stratégie d'autorisation de compte de service de votre environnement, n'utilisez pas l'exemple suivant. Ajoutez plutôt cette liaison à l'aide d'autres méthodes.

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "SERVICE_ACCOUNT"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
}

Remplacez :

  • SERVICE_ACCOUNT par le compte de service de votre environnement.
  • PROJECT_NUMBER par le numéro de projet

Exemple :

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "example-account@example-project.iam.gserviceaccount.com"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
}

É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.

Dans Cloud Composer 2, vous pouvez modifier tous les paramètres de performances et de scaling 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 Cloud Composer gérée qui inclut la base de données Airflow. Envisagez de sélectionner une taille d'environnement plus importante si vous souhaitez exécuter un grand nombre de DAG et de tâches.

  • Configuration des charges de travail. Contrôle l'échelle et les performances des composants d'environnement qui s'exécutent dans un cluster GKE: programmeurs Airflow, serveur Web Airflow et nœuds de calcul Airflow.

    • Programmeur Airflow. Analyse les fichiers de définition du DAG, planifie l'exécution du 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 programmeurs pour répartir la charge entre les instances de programmeur, et ainsi améliorer les performances et la fiabilité.

      Votre environnement peut contenir jusqu'à 10 programmeurs.

      L'augmentation du nombre de programmeurs n'améliore pas toujours les performances d'Airflow. Par exemple, le fait d'avoir un seul programmeur peut offrir de meilleures performances que deux. C'est le cas lorsque le programmeur supplémentaire n'est pas utilisé et consomme donc les ressources de votre environnement sans incidence sur les performances globales. Les performances réelles du programmeur dépendent du nombre de nœuds de calcul Airflow, du nombre de DAG et des tâches exécutées 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. Il surveille de manière asynchrone toutes les tâches différées dans votre environnement. Si vous avez au moins une instance de déclencheur dans votre environnement (ou au moins deux dans des environnements hautement résilients), vous pouvez utiliser des opérateurs différables dans vos DAG.

    • 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 Petites, Moyennes ou Grandes.

  • 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 Scheduler (Programmeur), définissez le nombre de programmeurs 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, saisissez le nombre de déclencheurs dans votre environnement à l'aide du champ Nombre de déclencheurs. Vous pouvez définir ce nombre sur 0 si vous ne souhaitez pas utiliser d'opérateurs différables dans vos DAG.

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

    4. Dans la section Nœud de calcul, spécifiez:

      • le nombre minimal et maximal de nœuds de calcul pour les limites d'autoscaling dans votre environnement
      • le processeur, la mémoire et l'allocation de stockage de vos nœuds de calcul
    5. 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, définissez les arguments suivants pour contrôler les paramètres d'évolutivité 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 programmeur 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 programmeur 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 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.

      Par défaut, les déclencheurs sont créés avec 0.5 vCPU et une allocation de mémoire de 0.5 Go par défaut. Utilisez les options --triggerer-cpu et --triggerer-memory pour spécifier une allocation de ressources différente pour les déclencheurs:

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

      • --triggerer-memory spécifie la quantité de mémoire pour un déclencheur Airflow. La quantité de 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 de déclenchement multiplié par 6,5.

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

  • --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-2.6.6-airflow-2.6.3 \
    --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 \
    --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 par small, medium ou large.
  • SCHEDULER_COUNT par le nombre de programmeurs.
  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur.
  • SCHEDULER_STORAGE par l'espace disque pour 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 par la quantité de mémoire en Go pour un déclencheur.
  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.
  • WEB_SERVER_MEMORY par l'espace disque pour le serveur Web.
  • WEB_SERVER_STORAGE par l'espace disque pour le 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-2.6.6-airflow-2.6.3 \
    --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 \
    --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 scaling et de performances 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
      },
      "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"
  }
}

Remplacez :

  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur, en Go.
  • SCHEDULER_STORAGE par l'espace disque pour un programmeur, 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 configure 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 quantité de 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 de déclenchement multiplié par 6,5.

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

  • 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 ou ENVIRONMENT_SIZE_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
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL"
  }
}

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 Airflow.
    • Le champ scheduler.count indique le nombre de programmeurs dans votre environnement.
    • Le champ triggerer.cpu indique 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 indique le nombre de déclencheurs dans votre environnement.
    • 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
      }
      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"

  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur, en Go.
  • SCHEDULER_STORAGE par l'espace disque pour un programmeur, 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 en Go pour un déclencheur.
  • 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 ou ENVIRONMENT_SIZE_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
      }
      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"

  }
}

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

Les environnements Cloud Composer hautement résilients sont des environnements Cloud Composer 2 qui utilisent des mécanismes intégrés de redondance et de basculement qui réduisent la vulnérabilité de l'environnement aux défaillances de zone et aux pannes au point de défaillance unique.

Un environnement hautement résilient s'exécute sur au moins deux zones d'une région sélectionnée. Exactement deux programmeurs Airflow, deux serveurs Web et au moins deux déclencheurs (si le nombre de déclencheurs n'est pas défini sur 0) 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 de zone, les instances de nœuds de calcul concernées sont reprogrammées dans une autre zone. La base de données Cloud SQL d'un environnement hautement résilient est une instance régionale qui possède une instance principale et une instance de secours.

Console

Sur la page Créer un environnement :

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

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

    1. Cliquez sur Custom (Personnalisé).

    2. Dans la liste déroulante Nombre de planificateurs, 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 processeurs 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 Type de mise en réseau, sélectionnez Environnement IP privé.

    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 de résilience élevée.

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
  • De --scheduler-count à 2
  • De --triggerer-count à 0 ou un nombre compris entre 2 et 10

Si vous utilisez des déclencheurs, les options --triggerer-cpu et --triggerer-memory sont également requises pour la création de l'environnement:

- `--triggerer-cpu` specifies the number of CPUs for an Airflow triggerer.
Allowed values: `0.5`, `0.75`, `1`.

- `--triggerer-memory` specifies the amount of memory for an Airflow
triggerer. The minimum required memory is equal to the number of
CPUs allocated for the triggerers. The maximum allowed value is
equal to the number of triggerer CPUs multiplied by 6.5.

For example, if you set the `--triggerer-cpu` flag to `1`, the
**minimum value** for `--triggerer-memory` is `1` and the
**maximum value** is `6.5`.
  • De --min-workers à 2 ou plus
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --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"
  }
}

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"
  }
}

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"

  }
}

Exemple :

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

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

Vous pouvez spécifier une zone Cloud SQL préférée lorsque vous créez un environnement de 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 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-2.6.6-airflow-2.6.3 \
    --cloud-sql-preferred-zone SQL_ZONE

Remplacez les éléments suivants :

  • SQL_ZONE: zone Cloud SQL à privilégier. Cette zone doit être située dans la région où se trouve l'environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --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 préférée.

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

Remplacez les éléments suivants :

  • SQL_ZONE: zone Cloud SQL à privilégier. Cette zone doit être située 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"
    }
  }
}

Terraform

Lorsque vous créez un environnement, le champ zone du bloc database_config spécifie la zone Cloud SQL à privilégier.

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

  config {
    database_config {
      zone = "SQL_ZONE"
    }
  }
}

Remplacez les éléments suivants :

  • SQL_ZONE: zone Cloud SQL à privilégier. Cette zone doit être située dans la région où se trouve l'environnement.

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

Les paramètres de mise en réseau dépendent du type d'environnement que vous souhaitez créer :

  • Environnement IP public : utilisez les paramètres de mise en réseau par défaut.

  • Environnement IP privé (avec PSC). Dans cette configuration, votre environnement utilise Private Service Connect pour la connectivité.

    Configurez votre environnement d'adresse IP privée:

    1. Configurez la mise en réseau de votre projet pour les environnements IP privés.
    2. Configurez Private Service Connect lorsque vous créez votre environnement.
    3. Spécifiez d'autres paramètres pour votre environnement d'adresse IP privée, comme décrit plus en détail dans cette section.

    Pour un environnement IP privé avec PSC, vous devez connaître les éléments suivants:

    • L'ID de votre réseau VPC
    • L'ID de votre sous-réseau VPC
    • Deux plages d'adresses IP secondaires dans votre sous-réseau VPC :

      • Plage d'adresses IP secondaire pour les pods
      • Plage d'adresses IP secondaire pour les services
    • Plages d'adresses IP pour les composants de l'environnement:

      • Plage d'adresses IP du plan de contrôle GKE. Plage d'adresses IP pour le plan de contrôle GKE.
      • Sous-réseau de connexion Cloud Composer. Plage d'adresses IP pour le sous-réseau de connexion Cloud Composer.
  • Environnement IP privé (appairages de VPC) : Dans cette configuration, votre environnement utilise des appairages de VPC pour la connectivité.

    Configurez votre environnement d'adresse IP privée:

    1. Configurez la mise en réseau de votre projet pour les environnements IP privés.
    2. Spécifiez d'autres paramètres pour votre environnement d'adresse IP privée, comme décrit plus loin dans cette section.

    Pour un environnement IP privé avec appairage de VPC, vous devez connaître les éléments suivants:

    • L'ID de votre réseau VPC
    • L'ID de votre sous-réseau VPC
    • Deux plages d'adresses IP secondaires dans votre sous-réseau VPC :

      • Plage d'adresses IP secondaire pour les pods
      • Plage d'adresses IP secondaire pour les services
    • Plages d'adresses IP pour les composants de l'environnement :

      • Plage d'adresses IP pour le plan de contrôle GKE.

      • Plage d'adresses IP pour l'appairage de VPC à exporter depuis le réseau Cloud Composer interne vers le réseau sélectionné. Les composants d'infrastructure Cloud Composer utilisent des adresses IP de cette plage.

      • Plage d'adresses IP de l'instance Cloud SQL.

  • 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 décrites sur la page Configurer un VPC partagé.

    Pour un environnement VPC partagé, vous devez connaître :

    • L'ID du réseau VPC de votre projet hôte
    • L'ID du sous-réseau VPC de votre projet hôte
    • Deux plages d'adresses IP secondaires dans le sous-réseau VPC de votre projet hôte :

      • Plage d'adresses IP secondaire pour les pods
      • Plage d'adresses IP secondaire pour les services

    Lors de la création d'un environnement VPC partagé d'adresses IP publiques, vous devez toujours spécifier le réseau VPC, le sous-réseau et les plages d'adresses IP secondaires de votre projet hôte pour les pods et les services.

  • Pour créer un environnement VPC SC, vous devez créer un périmètre de service, puis créer des environnements d'adresse IP privée à l'intérieur de ce périmètre. Suivez les instructions décrites dans la section Configurer VPC Service Controls.

  • Les options de mise en réseau supplémentaires pour les environnements sont les suivantes :

    • Adresses IP publiques utilisées en mode privé. Si vous souhaitez utiliser davantage d'adresses IP, votre environnement peut utiliser en mode privé certaines plages d'adresses IP publiques en tant que plages d'adresses IP de sous-réseau internes pour les pods et les services.
    • Réseaux autorisés. Si vous souhaitez accéder au plan de contrôle de votre environnement d'adresse IP privée via HTTPS, vous pouvez utiliser des réseaux autorisés pour spécifier des plages CIDR.

    • Agent de masquage d'adresses IP. En utilisant des environnements avec l'agent de masquage d'adresses IP, vous pouvez traduire plusieurs adresses IP en une seule dans les configurations de mise en réseau de votre environnement. Pour en savoir plus sur la création d'environnements avec l'agent de masquage d'adresses IP, consultez la section Activer l'agent de masquage d'adresses IP.

Console

Pour créer un environnement d'adresse IP privée, procédez comme suit :

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

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

  3. Dans la liste déroulante Réseau, sélectionnez l'ID de votre réseau VPC.

  4. Dans la liste déroulante Sous-réseau, sélectionnez l'ID de votre sous-réseau VPC.

  5. Dans la section Plage d'adresses IP secondaire pour les pods, sélectionnez ou spécifiez la plage d'adresses IP secondaire pour les pods. Vous pouvez utiliser une plage secondaire existante de votre réseau VPC ou choisir d'utiliser une plage créée automatiquement.

  6. Dans la section Plage d'adresses IP secondaire pour les services, sélectionnez ou spécifiez la plage d'adresses IP secondaire utilisée par les services. Vous pouvez utiliser une plage secondaire existante de votre réseau VPC ou choisir d'utiliser une plage créée automatiquement.

  7. Dans la section Type de réseau, sélectionnez l'option Environnement d'adresse IP privée pour créer un environnement d'adresse IP privée.

  8. Dans la section Connectivité Composer, sélectionnez le type de mise en réseau pour votre environnement et spécifiez des plages d'adresses IP pour les composants de l'environnement:

    Pour un environnement qui utilise Private Service Connect:

    1. Sélectionnez Private Service Connect pour un environnement qui utilise Private Service Connect.

    2. Dans la section Sous-réseau de connexion Composer, spécifiez une plage d'adresses IP pour le sous-réseau de connexion Cloud Composer. L'adresse du point de terminaison PSC est sélectionnée dans cette plage. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.

    Pour un environnement qui utilise des appairages de VPC:

    1. Sélectionnez Appairages de VPC pour un environnement qui utilise des appairages de VPC.

    2. Dans la section Plage d'adresses IP pour le réseau locataire Composer, spécifiez une plage d'adresses IP pour le réseau locataire Cloud Composer. Ce réseau héberge le composant proxy SQL de votre environnement. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.

    3. Dans la section Plage d'adresses IP du réseau Cloud SQL, spécifiez une plage d'adresses IP pour l'instance Cloud SQL. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.

  9. Dans la section Plage d'adresses IP pour le réseau de plan de contrôle GKE, spécifiez une plage d'adresses IP pour le plan de contrôle GKE:

    • Pour utiliser la plage d'adresses IP par défaut de la région où se trouve votre environnement, sélectionnez Plage d'adresses IP par défaut.

    • Pour spécifier une plage d'adresses IP personnalisée, sélectionnez Plage d'adresses IP personnalisée et saisissez une plage au format CIDR dans le champ Adresse IP privée du cluster GKE.

  10. Sélectionnez le niveau d'accès au plan de contrôle GKE. Le plan de contrôle comporte deux points de terminaison. L'un des points de terminaison est privé et peut être utilisé par les nœuds de cluster et les VM. Un autre point de terminaison est public. Vous pouvez spécifier le niveau d'accès du point de terminaison public:

    • Pour activer l'accès au point de terminaison public à partir de réseaux autorisés, cochez la case Accéder au point de terminaison du plan de contrôle du cluster à l'aide de son adresse IP externe.

      L'utilisation de cette option définit le niveau d'accès du plan de contrôle sur "Accès au point de terminaison public activé, réseaux autorisés activés". Cela fournit un accès limité au plan de contrôle à partir de réseaux autorisés. Par défaut, aucune adresse IP source n'est spécifiée. Vous pouvez ajouter des réseaux autorisés au cluster.

    • Pour désactiver l'accès au point de terminaison public à partir des réseaux autorisés, décochez la case Accéder au point de terminaison du plan de contrôle du cluster à l'aide de son adresse IP externe.

      L'utilisation de cette option définit le niveau d'accès du plan de contrôle sur "Accès au point de terminaison public désactivé". Cela empêche tout accès Internet au plan de contrôle.

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.

  • --cluster-secondary-range-name ou --cluster-ipv4-cidr configure la plage secondaire des pods.

  • --services-secondary-range-name ou --services-ipv4-cidr permet de configurer la plage secondaire des services.

  • --master-ipv4-cidr spécifie une plage pour le plan de contrôle GKE.

  • (Environnements avec PSC) --connection-subnetwork spécifie une plage pour le sous-réseau de connexion Cloud Composer qui héberge le point de terminaison PSC.

  • (Environnements avec appairage de VPC) --composer-network-ipv4-cidr spécifie une plage pour le réseau locataire Cloud Composer. Ce réseau héberge le composant proxy SQL de votre environnement.

  • (Environnements avec appairage de VPC) --cloud-sql-ipv4-cidr spécifie une plage pour l'instance Cloud SQL.

  • --enable-private-endpoint contrôle le niveau d'accès au plan de contrôle GKE. Le plan de contrôle comporte deux points de terminaison. Un point de terminaison, privé, est utilisé par les nœuds de cluster et les VM. Un autre point de terminaison est public. Vous pouvez spécifier le niveau d'accès du point de terminaison public :

    • Pour activer l'accès au point de terminaison public à partir de réseaux autorisés, omettez l'argument --enable-private-endpoint.

      Utiliser cette option définit le niveau d'accès du plan de contrôle sur "Accès public aux points de terminaison activé, réseaux autorisés activés". Cela fournit un accès limité au plan de contrôle à partir de réseaux autorisés. Par défaut, aucune adresse IP source n'est spécifiée. Vous pouvez ajouter des réseaux autorisés au cluster.

    • Pour désactiver l'accès au point de terminaison public à partir de réseaux autorisés, spécifiez l'argument --enable-private-endpoint.

      L'utilisation de cette option définit le niveau d'accès du plan de contrôle sur "Accès public aux points de terminaison désactivé". Cela empêche tout accès Internet au plan de contrôle.

  • --enable-ip-masq-agent active l'agent de masquage d'adresses IP.

gcloud composer environments create ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version composer-2.6.6-airflow-2.6.3 \
  --enable-private-environment \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID \
  --cluster-ipv4-cidr PODS_RANGE \
  --services-ipv4-cidr SERVICES_RANGE \
  --master-ipv4-cidr CONTROL_PLANE_RANGE \
  --connection-subnetwork COMPOSER_PSC_RANGE \

Remplacez :

  • NETWORK_ID par votre ID de réseau VPC ;
  • SUBNETWORK_ID par votre ID de sous-réseau VPC ;
  • PODS_RANGE par la plage secondaire destinée aux pods ;
  • SERVICES_RANGE par la plage secondaire destinée aux services ;
  • CONTROL_PLANE_RANGE par la plage secondaire du plan de contrôle GKE ;

  • COMPOSER_PSC_RANGE par la plage pour le sous-réseau de connexion Cloud Composer.

É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 être conforme au format RFC 1035.

Par exemple, vous pouvez ajouter des tags réseau si vous prévoyez de restreindre le trafic pour un environnement IP privé 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 qui s'appliquent à toutes les VM de nœuds.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --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-2.6.6-airflow-2.6.3 \
    --tags group1,production

API

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

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

Remplacez :

  • TAG par 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"
      ]
    }
  }
}

Terraform

Lorsque vous créez un environnement, les champs suivants définissent des 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 qui sont 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"]
    }
  }
}

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"]
    }
  }
}

É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.

Actuellement, 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 fournir l'accès au serveur Web Airflow à partir de toutes les adresses IP, sélectionnez Autoriser l'accès à partir de 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 à partir de 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-2.6.6-airflow-2.6.3 \
    --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-2.6.6-airflow-2.6.3 \
    --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, dans la ressource Environment > EnvironmentConfig, spécifiez les paramètres d'accès du serveur Web.

  • Pour fournir un accès au serveur Web Airflow à partir de 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"
        }
      ]
    }
  }
}

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"
        }
      ]
    }
  }
}

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"
      }

    }

  }
}

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"
      }

    }
}

É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.

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

Pour obtenir la liste des options de configuration Airflow disponibles, consultez les pages Documentation de référence sur la configuration d'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-2.6.6-airflow-2.6.3 \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Remplacez :

  • ENV_VARS par une liste de paires NAME=VALUE séparées par des virgules pour les variables d'environnement ;
  • CONFIG_OVERRIDES par une liste de paires SECTION-KEY=VALUE séparées par des virgules 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-2.6.6-airflow-2.6.3 \
    --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 Environnement > 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",
      }
    }
  }
}

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"
      }
    }
  }
}

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"
      }
    }
  }
}

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"
      }
    }
  }
}

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

Par défaut, les intervalles de maintenance sont compris entre 00:00:00 et 04:00:00 (GMT) le vendredi, le samedi et le dimanche, chaque semaine.

Pour définir des intervalles de maintenance pour votre environnement:

Console

Sur la page Créer un environnement :

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

  2. Définissez l'heure de début, les jours et la durée de manière à obtenir une planification équivalant au minimum à 12 heures sur une période glissante de sept jours. Par exemple, une périodicité de 4 heures tous les lundis, mercredis et vendredis fournit bien la durée requise.

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-2.6.6-airflow-2.6.3 \
    --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 "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. Cloud Composer est compatible avec 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 01h00 et 7h00 (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-2.6.6-airflow-2.6.3 \
  --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"
    }
  }
}

Remplacez :

  • DATETIME_START par la date et l'heure de début au format "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. Cloud Composer est compatible avec 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 01h00 et 7h00 (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"
    }
  }
}

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"
    }
  }
}

Remplacez :

  • DATETIME_START par la date et l'heure de début au format "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. Cloud Composer est compatible avec 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 01h00 et 7h00 (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é Dataplex qui vous permet de suivre les mouvements des données. L'intégration de la traçabilité des données est disponible pour Cloud Composer 2 2.1.2 et versions ultérieures avec Airflow 2.2.5 et versions ultérieures.

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

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

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

  • La clé de chiffrement gérée par le client (CMEK) n'est pas activée dans l'environnement. La traçabilité des données n'est pas compatible avec les CMEK pour les métadonnées ingérées. Vous ne pouvez pas activer l'intégration de la traçabilité des données dans les environnements Cloud Composer qui utilisent des clés CMEK. Pour en savoir plus et connaître les autres limites, consultez la page Considérations relatives à la traçabilité des données.

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 ignorer le comportement automatique ou activer la traçabilité des données ultérieurement, une fois l'environnement créé.

Console

Pour désactiver l'intégration de la traçabilité des données, accédez à 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 section Intégration de la traçabilité des données Dataplex, sélectionnez Désactiver l'intégration avec la traçabilité des données Dataplex.

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-2.6.6-airflow-2.6.3 \
    --disable-cloud-data-lineage-integration

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.

    Le nom doit commencer par une lettre minuscule suivie d'un maximum de 62 caractères (lettres minuscules, chiffres ou traits d'union) et 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.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --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, Cloud Composer 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 décrites dans la section Utiliser le bucket d'un environnement personnalisé.

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

Vous pouvez attribuer des libellés à vos environnements pour ventiler les coûts de facturation en fonction de ces libellés.

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-2.6.6-airflow-2.6.3 \
    --labels LABELS

Remplacez :

  • LABELS par une liste de paires KEY=VALUE séparées par des virgules pour les variables d'environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.6.6-airflow-2.6.3 \
    --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"
  }

}

Étapes suivantes