Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment créer un environnement Cloud Composer.
- Pour en savoir plus sur les environnements, consultez la section Architecture des environnements.
- Pour en savoir plus sur la création d'un environnement avec Terraform, consultez Créer des environnements (Terraform).
Avant de commencer
Activez l'API Cloud Composer. Pour voir la liste complète des services utilisés par Cloud Composer, consultez Services requis par Cloud Composer
Le délai approximatif de création d'un environnement est 25 minutes.
Lors de la création de l'environnement, vous spécifiez un compte de service. Les nœuds du cluster de votre environnement s'exécutent sous ce compte.
Par défaut, les environnements Cloud Composer utilisent le compte de service Compute Engine par défaut géré par Google. Nous vous recommandons de créer un compte de service géré par l'utilisateur qui possède un rôle spécifique à Cloud Composer et de l'utiliser pour vos environnements.
Si vous créez un environnement avec Terraform, le compte de service utilisé par Terraform doit disposer d'un rôle avec l'autorisation
composer.environments.create
activée.Pour en savoir plus sur le compte de service pour Terraform, consultez la documentation de référence sur la configuration du fournisseur Google.
Pour en savoir plus sur l'utilisation de Terraform pour créer un environnement Cloud Composer, consultez la documentation Terraform.
Pour en savoir plus sur les paramètres supplémentaires, consultez la documentation de référence sur les arguments Terraform.
Adresse IP privée : il existe des exigences spécifiques en matière de réseau et d'appairage pour créer un environnement d'adresse IP privée. Pour en savoir plus, consultez la page Configurer une adresse IP privée.
VPC partagé : l'utilisation de VPC partagé avec Cloud Composer nécessite une configuration réseau spécifique. Pour en savoir plus, consultez la page Configurer un VPC partagé.
VPC SC : pour déployer des environnements Cloud Composer dans un périmètre de sécurité, consultez la section Configurer VPC SC. Lorsque vous utilisez Cloud Composer, VPC Service Controls applique plusieurs limites connues.
1. Configuration de base
Cette étape crée un environnement Cloud Composer avec des paramètres par défaut à l'emplacement spécifié.
Console
Dans la console Google Cloud, accédez à la page Créer un environnement.
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.
Dans la liste déroulante Emplacement, choisissez un emplacement pour votre environnement.
Un emplacement est la région dans laquelle se situe l'environnement.
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 correspond à la région dans laquelle se trouve l'environnement.
IMAGE_VERSION
par le nom d'une image Cloud Composer.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
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 situe 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 d'une 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.20.12-airflow-1.10.15"
}
}
}
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 correspond à la région dans laquelle se trouve l'environnement.
IMAGE_VERSION
par le nom d'une image Cloud Composer.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
}
}
Étape 2. (Facultatif) Sélectionnez un compte de service pour votre environnement.
Les nœuds du cluster de votre environnement s'exécutent sous ce 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 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 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, l'argument --service-account
spécifie le compte de service de votre environnement.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--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 : (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, indiquez le nombre de nœuds dans le cluster GKE de votre environnement et sélectionnez les types de machines pour les composants d'environnement.
Console
Sur la page Créer un environnement :
Dans la section Configuration des nœuds :
Saisissez le Nombre de nœuds.
Le nombre de nœuds correspond au nombre de nœuds Google Kubernetes Engine dans le cluster de l'environnement. Par défaut, les environnements disposent de trois nœuds.
Vous pouvez modifier cette valeur après avoir créé votre environnement.
Choisissez un Type de machine pour les nœuds.
Le type de machine pour les nœuds est Type de machine Compute Engine 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 la création de votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.
Saisissez la Taille du disque.
Taille du disque, en Go, pour les nœuds de l'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 grand volume de données dans des dossiers synchronisés avec les VM de l'environnement. Par exemple, dans le dossier
/data
du bucket de votre environnement.La taille minimale est de 30 Go. La taille par défaut est de 100 Go. Une fois l'environnement créé, vous ne pouvez pas modifier ce paramètre.
Choisissez le Nombre de programmeurs.
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é.
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éveloppez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section Configuration Cloud SQL, choisissez le Type de machine Cloud SQL.
Ce paramètre détermine le type de machine pour 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
.Dans la section Configuration du serveur Web, sélectionnez Type de machine du serveur Web.
Ce paramètre détermine le type de machine pour l'instance Compute Engine qui exécute le serveur Web Airflow.
Le type de machine par défaut du serveur Web est
composer-n1-webserver-2
.
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de scaling et de performances 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 de l'environnement. Par défaut, les environnements disposent de 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 à la fois. Utilisez plusieurs programmeurs pour répartir la charge entre les instances de programmeur, et ainsi améliorer les performances et la fiabilité.
L'augmentation du nombre de programmeurs n'améliore pas toujours les performances d'Airflow. Par exemple, 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.
--disk-size
spécifie la taille de disque pour les VM de l'environnement.Taille du disque, en Go, pour les nœuds de l'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 grand volume de données dans des dossiers synchronisés avec les VM de l'environnement. Par exemple, dans le dossier
/data
du bucket de votre environnement.La taille minimale est de 30 Go. La taille par défaut est de 100 Go. Une fois l'environnement créé, vous ne pouvez pas modifier ce paramètre.
--machine-type
spécifie le type de machine pour les VM de nœud.Le type de machine pour les nœuds est Type de machine Compute Engine 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 la création de votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.
--cloud-sql-machine-type
indique le type de machine pour l'instance Cloud SQL.Ce paramètre détermine le type de machine pour 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
indique le type de machine pour l'instance de serveur Web Airflow.Ce paramètre détermine le type de machine pour l'instance Compute Engine qui exécute le serveur Web Airflow.
Le type de machine par défaut du serveur Web est
composer-n1-webserver-2
.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone NODE_ZONE \
--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 :
NODE_COUNT
par le nombre de nœuds.NODE_ZONE
par la zone Compute Engine pour les VM de l'environnement ;SCHEDULER_COUNT
par le nombre de programmeurs.DISK_SIZE
par la taille du disque pour les VM de l'environnement, en Go ;NODE_MACHINE_TYPE
par le type de machine pour les VM de nœud ;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 :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone us-central1-a \
--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 Environnement > EnvironmentConfig, spécifiez à l'échelle de l'environnement et aux 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 :
NODE_COUNT
par le nombre de nœuds ;DISK_SIZE
par la taille du disque pour les VM de l'environnement, en Go ;NODE_MACHINE_TYPE
par le type de machine pour les VM de nœud ; Cette valeur doit contenir une zone pour les VM de l'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 :
// 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 de scaling et de performances de l'environnement :
node_count
dans le blocnode_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 de l'environnement. Par défaut, les environnements disposent de trois nœuds.
Vous pouvez modifier cette valeur après avoir créé votre environnement.
disk_size_gb
dans le blocnode_config
spécifie la taille de disque pour les VM de l'environnement.Taille du disque, en Go, pour les nœuds de l'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 grand volume de données dans des dossiers synchronisés avec les VM de l'environnement. Par exemple, dans le dossier
/data
du bucket de votre environnement.La taille minimale est de 30 Go. La taille par défaut est de 100 Go. Une fois l'environnement créé, vous ne pouvez pas modifier ce paramètre.
machine_type
dans le blocnode_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 de votre environnement dans le champzone
.Le type de machine pour les nœuds est Type de machine Compute Engine 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 la création de votre environnement, vous devez reconfigurer manuellement le cluster d'environnement.
machine_type
dans le blocdatabase_config
spécifie le type de machine pour l'instance Cloud SQL.Ce paramètre détermine le type de machine pour 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 blocweb_server_config
spécifie le type de machine pour l'instance de serveur Web Airflow.Ce paramètre détermine le type de machine pour l'instance Compute Engine qui exécute le serveur Web Airflow.
Le type de machine par défaut du serveur Web est
composer-n1-webserver-2
.Le champ
scheduler_count
du blocsoftware_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 de l'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 les VM de l'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 4 : (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 d'adresse IP publique Utilisez les paramètres de mise en réseau par défaut.
Environnement IP privé (appairages de VPC). Dans cette configuration, votre environnement utilise des appariements de VPC pour la connectivité.
Configurez votre environnement d'adresses IP privées :
- Configurez la mise en réseau de votre projet pour les environnements d'adresses IP privées.
- Spécifiez d'autres paramètres pour votre environnement IP privé, comme décrit plus loin dans cette section.
Pour un environnement d'adresse IP privée avec des mises en paire de VPC, vous devez connaître :
- 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 du serveur Web.
- Plage d'adresses IP pour 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 du 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 plus d'adresses IP votre environnement peut utiliser en mode privé certaines plages d'adresses IP publiques en tant qu'adresses IP internes, des plages d'adresses IP de sous-réseau pour les pods et les services.
- Réseaux autorisés. Si vous souhaitez accéder au plan de contrôle via HTTPS, vous pouvez utiliser réseaux autorisés pour spécifier les plages CIDR nécessaires.
- Agent de masquage d'adresses IP. En utilisant des environnements avec IP Masquerade vous pouvez utiliser plusieurs traductions d'adresses IP vers les configurations réseau de l'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 :
Assurez-vous que votre mise en réseau est configurée pour le type d'environnement que vous souhaitez créer.
Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section Configuration du réseau, cochez la case Activer le VPC natif (utilisation d'une adresse IP d'alias).
Dans la liste déroulante Réseau, sélectionnez l'ID de votre réseau VPC.
Dans la liste déroulante Sous-réseau, sélectionnez l'ID de votre sous-réseau VPC.
Dans la section Attribution d'adresses IP de pods, 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 au format CIDR.
Dans la section Attribution d'adresses IP de services, 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 au format CIDR.
Dans la section Adresse IP privée, cochez la case Activer l'adresse IP privée.
Dans la section Adresse IP privée du cluster 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.
Sélectionnez 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, cochez la case Accéder au point de terminaison du maître en utilisant son adresse IP externe.
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, décochez la case Accéder au point de terminaison du maître en utilisant son adresse IP externe.
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.
Dans la section Adresse IP privée du serveur Web, spécifiez une plage d'adresses IP pour l'instance de serveur Web Airflow.
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 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.--enable-ip-alias
active le VPC natif à l'aide d'adresses IP d'alias.Ce paramètre est obligatoire lors de l'utilisation de
--enable-private-environment
ou lors de la configuration de plages secondaires pour les pods et les services :--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.
--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 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.
Les arguments
--enable-master-authorized-networks
et--master-authorized-networks
configurent les réseaux autorisés pour votre environnement.Configuration de
--enable-privately-used-public-ips
adresses IP publiques utilisées en mode privé pour votre environnement.--enable-ip-masq-agent
active l'agent de masquage d'adresses IP.
Exemple (environnement IP privé )
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-private-environment \
--enable-ip-alias \
--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 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 ;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 5 : (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 permettent d'identifier les sources ou cibles valides pour le réseau des pare-feu. Chaque balise de la liste doit respecter RFC 1035.
Par exemple, vous pouvez ajouter des tags de réseau si vous prévoyez de limiter le trafic d'un environnement d'adresse IP privée avec des règles de pare-feu.
Console
Sur la page Créer un environnement :
- Recherchez la section Configuration des nœuds.
- Dans le champ Tags, spécifiez des tags d'instance pour les VM de nœud.
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 et appliqués à tous VM de nœud.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--tags group1,production
API
Lorsque vous créez un environnement, dans Environnement > EnvironmentConfig, spécifiez les tags réseau de votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
]
}
}
}
Remplacez :
TAG
avec un tag réseau
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"tags": [
"group1",
"production"
]
}
}
}
Terraform
Lorsque vous créez un environnement, les champs suivants définissent des tags réseau pour votre environnement:
- Le champ
tags
du blocnode_config
spécifie une liste d'éléments séparés par une virgule de tags réseau 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 6 : (Facultatif) Configurer l'accès réseau au serveur Web
Les paramètres d'accès au serveur Web Airflow ne dépendent pas du type de votre environnement. Vous pouvez configurer l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours laisser l'interface utilisateur d'Airflow accessible depuis Internet.
Vous ne pouvez pas configurer les plages d'adresses IP autorisées à l'aide d'adresses IP privées.
Console
Dans la section Configuration du serveur Web de la page Créer un environnement, procédez comme suit :
Pour autoriser 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 interdire 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
fournit un accès à 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-1.20.12-airflow-1.10.15 \
--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-1.20.12-airflow-1.10.15 \
--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 Environnement > EnvironmentConfig, spécifiez le serveur Web paramètres d'accès.
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 7 : 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 :
Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section Variables d'environnement, cliquez sur Ajouter une variable.
Renseignez les champs Nom et Valeur de la variable d'environnement.
Dans la section Remplacements de configuration Airflow, cliquez sur Ajouter un remplacement de configuration Airflow.
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-1.20.12-airflow-1.10.15 \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Remplacez :
ENV_VARS
par une liste de pairesNAME=VALUE
séparées par des virgules pour les variables d'environnement ;CONFIG_OVERRIDES
par une liste de pairesSECTION-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-1.20.12-airflow-1.10.15 \
--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 Environnement > EnvironmentConfig, spécifiez 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 blocsoftware_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 blocsoftware_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 8 : (Facultatif) Spécifier des intervalles de maintenance
Par défaut, les environnements Cloud Composer 1 n'ont pas de intervalles de maintenance si vous les créez la console Google Cloud, l'API ou Terraform. Nous vous recommandons de spécifier des intervalles de maintenance pour vos environnements nouveaux et existants.
Si vous créez votre environnement à l'aide de gcloud CLI, votre environnement a des intervalles de maintenance par défaut de 00:00:00 à 04:00:00 (GMT) le vendredi, le samedi et le dimanche, chaque semaine.
Pour spécifier des intervalles de maintenance personnalisés pour votre environnement :
Console
Sur la page Créer un environnement :
Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section Intervalles de maintenance, cochez la case Définir une heure personnalisée pour les intervalles de maintenance.
Dans la liste déroulante Fuseau horaire, choisissez un fuseau horaire pour les intervalles de maintenance.
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-1.20.12-airflow-1.10.15 \
--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 6 heures entre 01:00 à 7h (UTC) les mercredis, les samedis et les dimanches Le 1er janvier 2023 est ignoré.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--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, dans la ressource Environment > EnvironmentConfig, spécifiez les paramètres des 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 "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 01:00 et 07:00 (UTC) les mercredis, samedis et dimanches. Le 1er janvier 2023 est ignoré.
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.
- Le format
L'exemple suivant spécifie un intervalle de maintenance de six heures entre 01:00 et 07:00 (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 9 : (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 10 : (Facultatif) Spécifier des libellés d'environnement
Vous pouvez attribuer des étiquettes à vos environnements décomposer les coûts de facturation en fonction de ces étiquettes.
Console
Sur la page Créer un environnement :
Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section Libellés, cliquez sur Ajouter un libellé.
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-1.20.12-airflow-1.10.15 \
--labels LABELS
Remplacez :
LABELS
par une liste de pairesKEY=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-1.20.12-airflow-1.10.15 \
--labels owner=engineering-team,env=production
API
Lorsque vous créez un environnement, dans la ressource Environnement, spécifiez des libellés pour votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
Remplacez :
LABEL_KEY
par une clé de libellé d'environnement.LABEL_VALUE
par une valeur du libellé d'environnement
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"labels": {
"owner": "engineering-team",
"env": "production"
}
}
Terraform
Lorsque vous créez un environnement, spécifiez des libellés dans le bloc labels
(en dehors du bloc config
).
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
labels = {
LABEL_KEY = "LABEL_VALUE"
}
}
Remplacez :
LABEL_KEY
par une clé de libellé d'environnement.LABEL_VALUE
par une valeur du libellé d'environnement
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
Étape 11 : (Facultatif) Configurer d'autres paramètres
Les autres paramètres incluent :
Une 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 dans l'emplacement de votre environnement.
Par défaut, une zone aléatoire est sélectionnée automatiquement.
Champs d'application OAuth
Les champs d'application OAuth sont un ensemble de champs d'application d'API Google à mettre à disposition sur toutes les VM de nœud. Si cet élément 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, incluez
https://www.googleapis.com/auth/cloud-platform
dans la liste des champs d'application spécifiés.Version Python
Si votre environnement utilise Airflow 1.10.* ou des versions antérieures, vous pouvez faire en sorte que votre environnement utilise Python 2. La version par défaut de Python est Python 3. Pour plus d'informations sur la compatibilité de Python 2 avec Cloud Composer, consultez la page Versions Python compatibles.
Console
Sur la page Créer un environnement :
Dans la section Configuration des nœuds :
Dans la liste déroulante Zone, sélectionnez une zone pour les nœuds de votre environnement.
Une fois la zone sélectionnée, vous ne pourrez plus la modifier.
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 champs d'application OAuth par la suite.
Pour spécifier plusieurs champs d'application OAuth, fournissez une liste de valeurs séparées par une virgule. Incluez
https://www.googleapis.com/auth/cloud-platform
dans la liste des champs d'application spécifiés.Dans le champ Version Python, choisissez la version de Python.
Vous ne pourrez pas modifier la version Python par la suite.
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent divers paramètres de votre environnement :
--zone
spécifie une zone Compute Engine pour vos VM d'environnement.--oauth-scopes
spécifie la liste des champs d'application OAuth séparés par une virgule. Incluezhttps://www.googleapis.com/auth/cloud-platform
dans la liste des champs d'application spécifiés.--python-version
spécifie la version de Python.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone ZONE \
--oauth-scopes OAUTH_SCOPES \
--python-version PYTHON_VERSION
Remplacez :
ZONE
par le nom de la zone Compute EngineOAUTH_SCOPES
par une liste de champs d'application OAuth séparés par une virgulePYTHON_VERSION
par la version de Python (3
ou2
).
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--zone us-central1-a \
--oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery \
--python-version 3
API
Lorsque vous créez un environnement, dans la ressource Environnement > EnvironmentConfig, spécifiez divers paramètres de votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"location": "projects/PROJECT_ID/zones/ZONE",
"oauthScopes": [
"OAUTH_SCOPE"
]
},
"softwareConfig": {
"pythonVersion": "PYTHON_VERSION"
}
}
}
Remplacez :
ZONE
par le nom de la zone Compute EngineOAUTH_SCOPE
par un champ d'application OAuth. Pour spécifier des champs d'application supplémentaires, ajoutez le champ d'applicationhttps://www.googleapis.com/auth/cloud-platform
suivi des champs d'application supplémentaires.PYTHON_VERSION
par la version de Python (3
ou2
).
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"
]
},
"softwareConfig": {
"pythonVersion": "3"
}
}
}
Terraform
Lorsque vous créez un environnement, les champs suivants contrôlent divers paramètres de votre environnement :
Le champ
zone
du blocnode_config
spécifie une zone Compute Engine pour les VM de l'environnement.Le champ
oauth_scopes
du blocnode_config
spécifie une liste de champs d'application OAuth séparés par une virgule.Le champ
python_version
du blocsoftware_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]"
}
software_config {
python_version = "PYTHON_VERSION"
}
}
}
Remplacez :
ZONE
par le nom de la zone Compute EngineOAUTH_SCOPES
par une liste de champs d'application OAuth séparés par une virgulePYTHON_VERSION
par la version de Python (3
ou2
).
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]"
}
software_config {
python_version = "3"
}
}
}
Étape 12 : (Facultatif) Appliquer l'utilisation de l'API bêta
Vous pouvez explicitement faire en sorte que votre environnement utilise l'API Cloud Composer version bêta, 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 :
Développez l'élément Mise en réseau, remplacements de configuration Airflow et fonctionnalités supplémentaires.
Dans la section API bêta, cochez la case Appliquer l'utilisation de l'API bêta.
gcloud
Créez l'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
- Résoudre les problèmes de création d'environnement
- Configurer un VPC partagé
- Configurer VPC Service Controls
- Ajouter et mettre à jour des DAG
- Accéder à l'interface utilisateur d'Airflow
- Mettre à jour et supprimer des environnements
- À propos des versions de Cloud Composer