Créer des environnements

Cloud Composer 1 | Cloud Composer 2

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

Un environnement Cloud Composer est une installation Apache Airflow autonome déployée dans un cluster Google Kubernetes Engine géré. Pour en savoir plus sur les environnements, consultez la page Architecture de l'environnement.

Vous pouvez créer un ou plusieurs environnements dans un seul projet Google Cloud.

Avant de commencer

1. Configuration de base

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

L'environnement utilise l'image Cloud Composer par défaut pour Cloud Composer 1.

Console

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

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

  2. Dans le champ Nom, saisissez le nom de votre 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 fournir un nom également valide pour le nom de bucket Cloud Storage. Consultez les consignes de dénomination des buckets pour obtenir la liste des restrictions.

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

    Un emplacement correspond à la région Compute Engine où se trouve le cluster GKE de l'environnement.

  4. Passez à l'étape suivante ou cliquez sur Créer pour créer un environnement.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION

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 fournir un nom également valide pour le nom de bucket Cloud Storage. Consultez les consignes de dénomination des buckets pour obtenir la liste des restrictions.

  • LOCATION par la région associée à l'environnement.

    Un emplacement correspond à la région Compute Engine où se trouve le cluster GKE de l'environnement.

Exemple :

gcloud composer environments create example-environment \
    --location us-central1

API

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

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

Remplacez :

  • PROJECT_ID par l'ID du projet ;

  • LOCATION par la région associée à l'environnement.

    Un emplacement correspond à la région Compute Engine où 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 fournir un nom également valide pour le nom de bucket Cloud Storage. Consultez les consignes de dénomination des buckets pour obtenir la liste des restrictions.

Exemple :

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment"

}

Terraform

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

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"
}

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 fournir un nom également valide pour le nom de bucket Cloud Storage. Consultez les consignes de dénomination des buckets pour obtenir la liste des restrictions.

  • LOCATION par la région associée à l'environnement.

    Un emplacement correspond à la région Compute Engine où se trouve le cluster GKE de l'environnement.

Exemple :

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"
}

Étape 2. (Facultatif) Sélectionner les versions de Cloud Composer et Airflow

Pour créer un environnement avec une version spécifique de Cloud Composer et d'Airflow, procédez comme suit:

Console

Sur la page Créer un environnement, dans la section Configuration des nœuds, dans la liste déroulante Version de l'image, sélectionnez une version. Image Cloud Composer avec la version requise d'Airflow.

gcloud

  1. Choisissez une image Cloud Composer avec la version requise d'Airflow.

  2. Lorsque vous créez un environnement, utilisez l'argument --image-version.

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

    Remplacez :

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

    Exemple :

    gcloud composer environments create example-environment \
        --location us-central1 \
        --image-version "composer-1.16.5-airflow-1.10.15"
    

API

  1. Choisissez une image Cloud Composer avec la version requise d'Airflow.

  2. Lorsque vous créez un environnement, dans leEnvironnement >EnvironmentConfig >Configuration logicielle utilisez la valeurimageVersion.

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

Remplacez :

  • 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-1.16.5-airflow-1.10.15"
    }
  }
}

Terraform

  1. Choisissez une image Cloud Composer avec la version requise d'Airflow.

  2. Lorsque vous créez un environnement, utilisez le champ image_version dans le bloc software_config.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

Remplacez :

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

Exemple :

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

  config {
    software_config {
      image_version = "composer-1.16.5-airflow-1.10.15"
    }
  }
}

Étape 3 : (Facultatif) Sélectionnez un compte de service pour votre environnement

Les nœuds du cluster de votre environnement s'exécutent en tant que compte de service.

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 vos 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 section Configuration des nœuds, dans la liste déroulante Compte de service, sélectionnez un compte de service pour votre environnement.

gcloud

Lorsque vous créez un environnement, le fichier --service-account spécifie le compte de service correspondant à votre environnement.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Lorsque vous créez un environnement, dans la ressource Environnement > 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" {
  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" {
  name = "example-environment"
  region = "us-central1"

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

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

Pour spécifier la configuration de l'échelle et des performances pour votre environnement, indiquez le nombre de nœuds dans le cluster GKE de votre environnement et sélectionnez des types de machines pour les composants d'environnement.

Console

Sur la page Créer un environnement:

  1. Dans la section Configuration du nœud:

    • Saisissez le nombre de nœuds.

      Le nombre de nœuds correspond au nombre de nœuds Google Kubernetes Engine dans le cluster GKE de l'environnement. Par défaut, les environnements ont trois nœuds.

      Vous pouvez modifier cette valeur après avoir créé votre environnement.

    • Choisissez Type de machine pour les nœuds.

      Le type de machine pour les nœuds est le type de machine Compute Engine utilisé pour les instances de cluster. Ce paramètre détermine le nombre de processeurs et la quantité de mémoire de votre environnement. Le type de machine par défaut est n1-standard-1.

      Pour modifier cette valeur après avoir créé votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.

    • Saisissez la taille du disque.

      Taille de disque, en Go, pour les nœuds d'environnement. Chaque nœud de votre environnement dispose de cette quantité d'espace disque. Sélectionnez une taille de disque plus importante si vous prévoyez de stocker un volume important de données dans des dossiers synchronisés avec les VM d'environnement. Par exemple, dans le dossier /data du bucket de votre environnement.

      La taille minimale est de 20 Go. La taille par défaut est de 100 Go. Vous ne pouvez pas modifier ce paramètre après avoir créé un environnement.

    • Sélectionnez le nombre de programmeurs.

      Votre environnement peut exécuter plusieurs programmeurs Airflow en même temps. Utilisez plusieurs planificateurs pour répartir la charge entre plusieurs instances de planificateur afin d'améliorer les performances et la fiabilité. Vous pouvez spécifier un nombre de programmeurs jusqu'au nombre de nœuds de votre environnement.

      L'augmentation du nombre de programmeurs n'améliore pas toujours les performances Airflow. Par exemple, le fait de disposer d'un seul programmeur peut offrir de meilleures performances que d'en avoir deux. Cela peut se produire lorsque le programmeur supplémentaire n'est pas utilisé et consomme ainsi 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 qui s'exécutent 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 revenir à votre environnement d'origine.

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

  2. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

  3. Dans la section Configuration Cloud SQL, sélectionnez Type de machine Cloud SQL.

    Ce paramètre détermine le type de machine de l'instance Cloud SQL qui exécute la base de données Airflow. Le type de machine Cloud SQL par défaut est db-n1-standard-2.

  4. Dans la section Configuration du serveur Web, sélectionnez Type de machine du serveur Web.

    Ce paramètre détermine le type de machine de l'instance Compute Engine qui exécute le serveur Web Airflow.

    Le type de machine de serveur Web par défaut est composer-n1-webserver-2.

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres d'échelle et de performance de l'environnement:

  • --node-count spécifie le nombre de nœuds dans votre environnement.

    Le nombre de nœuds correspond au nombre de nœuds Google Kubernetes Engine dans le cluster GKE de l'environnement. Par défaut, les environnements ont trois nœuds.

    Vous pouvez modifier cette valeur après avoir créé votre environnement.

  • --scheduler-count spécifie le nombre de programmeurs dans votre environnement.

    Votre environnement peut exécuter plusieurs programmeurs Airflow en même temps. Utilisez plusieurs planificateurs pour répartir la charge entre plusieurs instances de planificateur afin d'améliorer les performances et la fiabilité. Vous pouvez spécifier un nombre de programmeurs jusqu'au nombre de nœuds de votre environnement.

    L'augmentation du nombre de programmeurs n'améliore pas toujours les performances Airflow. Par exemple, le fait de disposer d'un seul programmeur peut offrir de meilleures performances que d'en avoir deux. Cela peut se produire lorsque le programmeur supplémentaire n'est pas utilisé et consomme ainsi 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 qui s'exécutent 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 revenir à votre environnement d'origine.

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

  • --disk-size spécifie la taille du disque pour les VM d'environnement.

    Taille de disque, en Go, pour les nœuds d'environnement. Chaque nœud de votre environnement dispose de cette quantité d'espace disque. Sélectionnez une taille de disque plus importante si vous prévoyez de stocker un volume important de données dans des dossiers synchronisés avec les VM d'environnement. Par exemple, dans le dossier /data du bucket de votre environnement.

    La taille minimale est de 20 Go. La taille par défaut est de 100 Go. Vous ne pouvez pas modifier ce paramètre après avoir créé un environnement.

  • --machine-type spécifie le type de machine pour les VM de nœud.

    Le type de machine pour les nœuds est le type de machine Compute Engine utilisé pour les instances de cluster. Ce paramètre détermine le nombre de processeurs et la quantité de mémoire de votre environnement. Le type de machine par défaut est n1-standard-1.

    Pour modifier cette valeur après avoir créé votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.

  • --cloud-sql-machine-type spécifie le type de machine pour l'instance Cloud SQL.

    Ce paramètre détermine le type de machine de l'instance Cloud SQL qui exécute la base de données Airflow. Le type de machine Cloud SQL par défaut est db-n1-standard-2.

  • --web-server-machine-type spécifie le type de machine pour l'instance de serveur Web Airflow.

    Ce paramètre détermine le type de machine de l'instance Compute Engine qui exécute le serveur Web Airflow.

    Le type de machine de serveur Web par défaut est composer-n1-webserver-2.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --node-count NODE_COUNT \
    --scheduler-count SCHEDULER_COUNT \
    --disk-size DISK_SIZE \
    --machine-type NODE_MACHINE_TYPE \
    --cloud-sql-machine-type SQL_MACHINE_TYPE \
    --web-server-machine-type WS_MACHINE_TYPE

Remplacez :

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --node-count 6 \
    --scheduler-count 1 \
    --disk-size 50 \
    --machine-type n1-standard-2 \
    --cloud-sql-machine-type db-n1-standard-2 \
    --web-server-machine-type composer-n1-webserver-2

API

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeCount": NODE_COUNT,
    "nodeConfig": {
      "machineType": "NODE_MACHINE_TYPE",
      "diskSizeGb": DISK_SIZE
    },
    "softwareConfig": {
      "schedulerCount": SCHEDULER_COUNT
    },
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    },
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

Remplacez :

Exemple :


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeCount": 6,
    "nodeConfig": {
      "machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
      "diskSizeGb": 50
    },
    "softwareConfig": {
      "schedulerCount": 1
    },
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    },
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

Lorsque vous créez un environnement, les champs suivants contrôlent les paramètres d'évolutivité et de performance:

  • node_count dans le bloc node_config spécifie le nombre de nœuds dans votre environnement.

    Le nombre de nœuds correspond au nombre de nœuds Google Kubernetes Engine dans le cluster GKE de l'environnement. Par défaut, les environnements ont trois nœuds.

    Vous pouvez modifier cette valeur après avoir créé votre environnement.

  • disk_size_gb dans le bloc node_config spécifie la taille du disque pour les VM d'environnement.

    Taille de disque, en Go, pour les nœuds d'environnement. Chaque nœud de votre environnement dispose de cette quantité d'espace disque. Sélectionnez une taille de disque plus importante si vous prévoyez de stocker un volume important de données dans des dossiers synchronisés avec les VM d'environnement. Par exemple, dans le dossier /data du bucket de votre environnement.

    La taille minimale est de 20 Go. La taille par défaut est de 100 Go. Vous ne pouvez pas modifier ce paramètre après avoir créé un environnement.

  • machine_type dans le bloc node_config spécifie le type de machine pour les VM de nœud. Lorsque vous spécifiez ce champ, indiquez également une zone Compute Engine pour les VM d'environnement dans le champ zone.

    Le type de machine pour les nœuds est le type de machine Compute Engine utilisé pour les instances de cluster. Ce paramètre détermine le nombre de processeurs et la quantité de mémoire de votre environnement. Le type de machine par défaut est n1-standard-1.

    Pour modifier cette valeur après avoir créé votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.

  • machine_type dans le bloc database_config spécifie le type de machine pour l'instance Cloud SQL.

    Ce paramètre détermine le type de machine de l'instance Cloud SQL qui exécute la base de données Airflow. Le type de machine Cloud SQL par défaut est db-n1-standard-2.

  • machine_type dans le bloc web_server_config spécifie le type de machine pour l'instance de serveur Web Airflow.

    Ce paramètre détermine le type de machine de l'instance Compute Engine qui exécute le serveur Web Airflow.

    Le type de machine de serveur Web par défaut est composer-n1-webserver-2.

  • Le champ scheduler_count du bloc software_config spécifie le nombre de programmeurs dans votre environnement. Votre environnement doit utiliser Airflow 2.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      node_count = NODE_COUNT
      disk_size_gb = DISK_SIZE
      machine_type = "NODE_MACHINE_TYPE"
      zone = "NODE_ZONE"
    }

    software_config {
      scheduler_count = SCHEDULER_COUNT
    }

    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }

    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

Remplacez :

  • NODE_COUNT par le nombre de nœuds
  • DISK_SIZE par la taille du disque pour les VM d'environnement, en Go.
  • NODE_MACHINE_TYPE par le type de machine pour les VM de nœud.
  • NODE_ZONE par la zone Compute Engine pour vos VM d'environnement.
  • SCHEDULER_COUNT par le nombre de programmeurs.
  • SQL_MACHINE_TYPE par le type de machine pour l'instance Cloud SQL.
  • WS_MACHINE_TYPE par le type de machine pour l'instance de serveur Web Airflow.

Exemple :

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

  config {

    node_config {
      node_count = 4
      disk_size_gb = 100
      zone = "us-central1-a"
      machine_type = "n1-standard-2"
    }

    software_config {
      scheduler_count = 2
    }

    database_config {
      machine_type = "db-n1-standard-2"
    }

    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
  }
}

Étape 5 : (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:

  • Pour un environnement d'adresse IP publique, utilisez les paramètres réseau par défaut.

  • Pour un environnement d'adresse IP privée, vous devez effectuer une configuration réseau supplémentaire dans votre projet, puis créer un environnement. Pour connaître la procédure à suivre, consultez la page Configurer un environnement Cloud Composer d'adresse IP privée.

    Pour un environnement d'adresse IP privée, vous devez connaître les éléments suivants:

    • ID de votre réseau VPC
    • Votre ID de 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
    • Trois 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'instance de serveur Web Airflow
      • Plage d'adresses IP de l'instance Cloud SQL
  • Pour un environnement VPC partagé, vous devez configurer du 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é.

    Pour un environnement VPC partagé, vous devez connaître les éléments suivants:

    • L'ID de réseau VPC de votre projet hôte
    • ID de 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 de 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 des environnements IP privés dans ce périmètre. Suivez les instructions décrites dans la section Configurer VPC Service Controls.

  • Autres options de mise en réseau pour les environnements:

    • Agent de masquage d'adresses IP En utilisant des environnements avec l'agent de masquage d'adresses IP, vous pouvez utiliser des traductions d'adresses IP plusieurs à une dans les configurations 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 réseau est configuré pour le type d'environnement que vous souhaitez créer.

  2. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

  3. Dans la section Configuration du réseau, cochez la case Activer le VPC natif (utilisation d'une adresse IP d'alias).

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

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

  6. Dans la section Allocation d'adresses IP de pod, spécifiez la plage d'adresses IP secondaire des pods. Vous pouvez utiliser une plage secondaire existante dans votre réseau VPC ou en spécifier une nouvelle au format CIDR.

  7. Dans la section Allocation d'adresses IP de service, spécifiez la plage d'adresses IP secondaire des services. Vous pouvez utiliser une plage secondaire existante dans votre réseau VPC ou en spécifier une nouvelle au format CIDR.

  8. Dans la section Adresse IP privée, cochez la case Activer une adresse IP privée.

  9. Dans la section Adresse IP privée du maître 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 pour la région dans laquelle 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, puis saisissez une plage au format CIDR dans le champ Adresse IP privée du maître GKE.

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

    • Pour autoriser l'accès au point de terminaison public à partir de réseaux autorisés, cochez la case Accéder au point de terminaison du maître en utilisant son adresse IP externe.

      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 permet de restreindre l'accès au plan de contrôle à partir des 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 depuis les réseaux autorisés, décochez la case Accéder au point de terminaison du maître en utilisant son adresse IP externe.

      Lorsque vous utilisez cette option, vous définissez 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.

  11. Dans la section Adresse IP privée du serveur Web, spécifiez une plage d'adresses IP pour l'instance de serveur Web Airflow.

  12. Dans la section Adresse IP privée Cloud SQL, spécifiez une plage d'adresses IP pour l'instance Cloud SQL.

gcloud

Assurez-vous que votre réseau est configuré 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-ip-alias active le VPC natif à l'aide d'adresses IP d'alias.

    Ce paramètre est obligatoire lorsque vous utilisez --enable-private-environment ou lors de la configuration des plages secondaires pour les pods et les services.

  • --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 pour les 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.

  • --web-server-ipv4-cidr spécifie une plage pour l'instance de serveur Web Airflow.
  • --cloud-sql-ipv4-cidr spécifie une plage pour l'instance Cloud SQL.

  • --enable-private-endpoint contrôle l'accès au niveau du plan de contrôle GKE. Le plan de contrôle possède deux points de terminaison. Un point de terminaison est privé et peut être utilisé par les nœuds de cluster et les VM. Un autre dépôt 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.

      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 permet de restreindre l'accès au plan de contrôle à partir des 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.

      Lorsque vous utilisez cette option, vous définissez 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.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-ip-alias \
    --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 \
    --web-server-ipv4-cidr WEB_SERVER_RANGE \
    --cloud-sql-ipv4-cidr SQL_RANGE

Remplacez :

  • NETWORK_ID par l'ID de votre réseau VPC.
  • SUBNETWORK_ID par l'ID de votre 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.

  • WEB_SERVER_RANGE par la plage secondaire de l'instance de serveur Web Airflow.
  • SQL_RANGE par la plage associée à l'instance Cloud SQL.

Étape 6 : (Facultatif) Configurez 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. Au lieu de cela, vous pouvez configurer l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours permettre d'accéder à l'interface utilisateur Airflow depuis Internet.

Console

Dans la section Web server configuration (Configuration du serveur Web) de la page Créer un environnement:

  • Pour permettre aux utilisateurs autorisés d'accéder à Airfow depuis Internet, 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 à partir d'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.

gcloud

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

  • --web-server-allow-all fournit un accès à Airfow depuis Internet aux utilisateurs autorisés. 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.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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, qui peut 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 \
    --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 Environnement > EnvironmentConfig, spécifiez des paramètres d'accès au serveur Web.

{
  "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, qui peut 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" {
  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, qui peut 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" {
  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 7 : (Facultatif) Spécifier des remplacements de configuration Airflow et des variables d'environnement

Vous pouvez définir 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. Vous ne pouvez pas les ignorer.

Pour obtenir la liste des options de configuration Airflow disponibles, consultez la documentation de référence sur la configuration Airflow 2 et la version 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. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

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

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

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

  5. Renseignez les champs Section, Key (Clé) et Value (Valeur) pour le 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 une virgule.

    Les noms de 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 des virgules pour les remplacements de configuration Airflow.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 \
    --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 des variables d'environnement et des 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 de 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" {
  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" {
  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 8 : (Facultatif) Spécifier des intervalles de maintenance

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

Console

Sur la page Créer un environnement:

  1. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

  2. Dans la section Intervalles de maintenance, cochez la case Définir un horaire personnalisé pour les intervalles de maintenance.

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

  4. Définissez Start time (Heure de début), Days (Jours) et Length (Durée), de sorte que l'heure combinée de la planification spécifiée soit d'au moins 12 heures dans une période de 7 à 7 jour. Par exemple, une période de quatre heures tous les lundis, mercredis et vendredis correspond à la durée requise.

gcloud

Les arguments suivants définissent des 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 beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 date/heure. Seule l'heure spécifiée de la journée est utilisée. La date spécifiée est ignorée.
  • DATETIME_END par la date et l'heure de fin au format de saisie date/heure. Seule l'heure spécifiée de la journée est utilisée. La date spécifiée est ignorée. La date et l'heure spécifiées doivent être postérieures à la date de début.
  • MAINTENANCE_RECURRENCE par une règle RRFC RFC 5545 pour les intervalles de maintenance. Cloud Composer est compatible avec deux formats:

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

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

L'exemple suivant spécifie un intervalle de maintenance de 6 heures compris entre 01h00 et 07h00 (UTC) les dimanches, mercredis et samedis. La date du 1er janvier 2021 est ignorée.

gcloud beta composer environments create example-environment \
  --location us-central1 \
  --maintenance-window-start '2021-01-01T01:00:00Z' \
  --maintenance-window-end '2021-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

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

{
  "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 de saisie date/heure. Seule l'heure spécifiée de la journée est utilisée. La date spécifiée est ignorée.
  • DATETIME_END par la date et l'heure de fin au format de saisie date/heure. Seule l'heure spécifiée de la journée est utilisée. La date spécifiée est ignorée. La date et l'heure spécifiées doivent être postérieures à la date de début.
  • MAINTENANCE_RECURRENCE par une valeur RRULE RFC 5545 pour les intervalles de maintenance. Cloud Composer est compatible avec deux formats:

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

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

L'exemple suivant spécifie un intervalle de maintenance de 6 heures compris entre 01h00 et 07h00 (UTC) les dimanches, mercredis et samedis. La date du 1er janvier 2021 est ignorée.

Exemple :


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

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

Terraform

Il n'est pas possible de spécifier des intervalles de maintenance à l'aide de Terraform. Vous pouvez créer un environnement à l'aide de Terraform, puis spécifier des intervalles de maintenance à l'aide de Google Cloud Console ou de gcloud.

Étape 9 : (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

Sur la page Créer un environnement:

  1. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

  2. Dans la section Libellés, cliquez sur Ajouter un libellé.

  3. 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 des virgules comportant des libellés d'environnement.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --labels LABELS

Remplacez :

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

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --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é du libellé d'environnement.
  • LABEL_VALUE par la 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" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Remplacez :

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

Exemple :

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

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

}

Étape 10 : (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 des données dans votre environnement, suivez les instructions de la page Utiliser des clés de chiffrement gérées par le client.

Étape 11. (Facultatif) Configurez les autres paramètres

Autres paramètres possibles:

  • Zone pour les nœuds de votre environnement

    Zone Compute Engine dans laquelle déployer les nœuds du cluster. Dans ce paramètre, vous pouvez sélectionner une zone spécifique à l'emplacement de votre environnement.

    Par défaut, une zone aléatoire est automatiquement sélectionnée.

  • Champs d'application OAuth

    Les champs d'application OAuth correspondent à un ensemble de champs d'application d'API Google à mettre à disposition sur toutes les VM de nœud. Si ce champ est vide, la valeur par défaut est https://www.googleapis.com/auth/cloud-platform.

    Si vous spécifiez des champs d'application OAuth personnalisés, ajoutez https://www.googleapis.com/auth/cloud-platform dans la liste des champs d'application spécifiés.

  • Tags de VM de nœud

    La liste des tags appliqués à toutes les VM de nœud. Les tags permettent d'identifier les sources ou les cibles valides pour les pare-feu de réseau. Chaque tag de la liste doit être conforme à la norme RFC 1035.

  • Version Python

    Si votre environnement utilise Airflow 1.10.* et des versions antérieures d'Airflow, vous pouvez le rendre traitant de Python 2. La version par défaut de Python est Python 3. Pour en savoir plus sur la compatibilité de Python 2 avec Cloud Composer, consultez la page Versions Python compatibles.

Console

Sur la page Créer un environnement:

  1. Dans la section Configuration du nœud:

    • Dans la liste déroulante Zone, sélectionnez une zone pour vos nœuds d'environnement.

      Vous ne pourrez pas changer de zone ultérieurement.

    • Dans le champ Champs d'application OAuth, spécifiez des champs d'application OAuth pour les VM de nœud.

      Vous ne pourrez pas modifier les habilitations OAuth ultérieurement.

    • Dans le champ Tags, spécifiez les tags d'instance pour les VM de nœud.

      Vous ne pourrez pas les modifier par la suite.

    • Dans le champ Version Python, choisissez la version Python.

      Vous ne pourrez pas modifier la version Python par la suite.

gcloud

Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres divers de votre environnement:

  • --zone spécifie une zone Compute Engine pour vos VM d'environnement.

  • --oauth-scopes spécifie une liste de champs d'application OAuth séparés par des virgules.

  • --tags spécifie une liste de tags d'instances appliqués à toutes les VM de nœud, séparés par une virgule.

  • --python-version spécifie la version de Python.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --zone ZONE \
    --oauth-scopes OAUTH_SCOPES \
    --tags TAGS \
    --python-version PYTHON_VERSION

Remplacez :

  • ZONE par le nom de la zone Compute Engine ;
  • OAUTH_SCOPES par une liste de champs d'application OAuth séparés par des virgules.
  • TAGS par une liste de tags d'instance séparés par des virgules.
  • PYTHON_VERSION par la version Python (3 ou 2) ;

Exemple :

gcloud composer environments create example-environment \
    --location us-central1 \
    --zone us-central1-a \
    --oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery  \
    --tags group1,production \
    --python-version 3

API

Lorsque vous créez un environnement, dans la ressource Environnement > EnvironmentConfig, spécifiez des paramètres divers pour votre environnement.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "location": "projects/PROJECT_ID/zones/ZONE",
      "oauthScopes": [
        "OAUTH_SCOPE"
      ],
      "tags": [
        "TAG"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "PYTHON_VERSION"
    }
  }
}

Remplacez :

  • ZONE par le nom de la zone Compute Engine ;
  • OAUTH_SCOPE par champ d'application OAuth. Pour spécifier des champs d'application supplémentaires, ajoutez le champ d'application https://www.googleapis.com/auth/cloud-platform, suivi des champs d'application supplémentaires.
  • TAG par un tag d'instance.
  • PYTHON_VERSION par la version Python (3 ou 2) ;

Exemple :

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "location": "projects/example-project/zones/us-central1-a",
      "oauthScopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/bigquery"
      ],
      "tags": [
        "group1",
        "production"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Lorsque vous créez un environnement, les champs suivants contrôlent divers paramètres de celui-ci:

  • Le champ zone du bloc node_config spécifie une zone Compute Engine pour vos VM d'environnement.

  • Le champ oauth_scopes du bloc node_config spécifie une liste de champs d'application OAuth séparés par une virgule.

  • Le champ tags du bloc node_config spécifie une liste de tags d'instance séparés par une virgule appliqués à toutes les VM de nœud.

  • Le champ python_version du bloc software_config spécifie la version de Python.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      zone = "ZONE"
      oauth_scopes = "[OAUTH_SCOPES]"
      tags = "TAGS"
    }

    software_config {
      python_version = "PYTHON_VERSION"
    }
  }
}

Remplacez :

  • ZONE par le nom de la zone Compute Engine ;
  • OAUTH_SCOPES par une liste de champs d'application OAuth séparés par des virgules.
  • TAGS par une liste de tags d'instance séparés par des virgules.
  • PYTHON_VERSION par la version Python (3 ou 2) ;

Exemple :

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

  config {
    node_config {
      zone = "us-central1-a"
      oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
      tags = "[group1,production]"
    }
    software_config {
      python_version = "3"
    }
  }
}

Étape 12 : (Facultatif) Appliquer l'utilisation de l'API bêta

Vous pouvez faire en sorte que votre environnement utilise l'API bêta Cloud Composer, même s'il ne dispose pas de fonctionnalités d'aperçu. Dans ce cas, votre environnement est créé à l'aide du point de terminaison du service v1beta1.

Console

Sur la page Créer un environnement:

  1. Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.

  2. Dans la section API bêta, cochez la case Appliquer l'utilisation de l'API bêta.

gcloud

Créez votre environnement à l'aide de la commande gcloud beta composer.

API

Créez votre environnement à l'aide du point de terminaison du service v1beta1.

Terraform

Le fournisseur Terraform pour Cloud Composer utilise l'API bêta par défaut.

Étape suivante