Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (ancienne 1re génération)
Cette page explique comment créer un environnement Managed Airflow.
- Pour en savoir plus sur les environnements, consultez 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 obtenir la liste complète des services utilisés par Managed Airflow, consultez Services requis par Managed Airflow.
Activez le groupe de services avec les API requises par Managed Airflow (Gen 2).
La création d'un environnement prend environ 25 minutes.
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.createactivé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 Managed Airflow, 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é : il existe des exigences réseau spécifiques pour utiliser le VPC partagé avec Managed Airflow. Pour en savoir plus, consultez la page Configurer un VPC partagé.
VPC SC : pour déployer des environnements Managed Airflow dans un périmètre de sécurité, consultez Configurer VPC SC. Lorsqu'il est utilisé avec Managed Airflow, VPC Service Controls présente plusieurs limites connues.
Vous remarquerez peut-être des entrées de métadonnées Compute Engine pour les clusters GKE appartenant à des environnements de votre projet. Lors de la création et de la mise à niveau des clusters GKE, Google Kubernetes Engine ajoute automatiquement des entrées de métadonnées au niveau du projet (
google_compute_project_metadata) pour suivre l'utilisation des plages d'adresses IP secondaires. Ne modifiez pas et ne supprimez pas ces entrées. Google Kubernetes Engine les gère automatiquement.
Étape 1 : Créer ou choisir un compte de service d'environnement
Lorsque vous créez un environnement, vous spécifiez un compte de service. Ce compte de service est appelé compte de service de l'environnement. Votre environnement utilise ce compte de service pour effectuer la plupart des opérations.
Le compte de service de votre environnement n'est pas un compte utilisateur. Un compte de service est un type particulier de compte utilisé par une application ou une instance de machine virtuelle (VM), et non par une personne.
Vous ne pourrez pas modifier le compte de service de votre environnement par la suite.
Si vous ne possédez pas encore de compte de service pour les environnements Managed Airflow dans votre projet, créez-en un.
Consultez Créer des environnements (Terraform) pour obtenir un exemple détaillé de création d'un compte de service pour votre environnement dans Terraform.
Pour créer un compte de service pour votre environnement :
Créez un compte de service comme décrit dans la documentation Identity and Access Management.
Attribuez-lui un rôle, comme décrit dans la documentation Identity and Access Management. Le rôle requis est Nœud de calcul Composer (
composer.worker).Si votre environnement utilise des restrictions d'emplacement des ressources ou installe des packages PyPI à partir d'un dépôt Artifact Registry ou à partir d'un dépôt privé, attribuez le rôle Utilisateur du compte de service (
iam.serviceAccountUser) au compte de service géré par l'utilisateur qui exécute votre environnement sur lui-même (le compte principal et la ressource sont le même compte de service).Pour accéder à d'autres ressources dans votre projet Google Cloud , accordez à ce compte de service les autorisations supplémentaires nécessaires pour accéder à ces ressources. Le rôle Nœud de calcul Composer (
composer.worker) fournit cet ensemble d'autorisations requis dans la plupart des cas. N'ajoutez des autorisations supplémentaires à ce compte de service que lorsque cela est nécessaire au fonctionnement de vos DAG.
Étape 2 : Configuration de base
Cette étape crée un environnement Managed Airflow avec des paramètres par défaut à l'emplacement spécifié.
Toutes les autres étapes de ce guide expliquent comment personnaliser et configurer différents aspects de votre environnement. Toutes les étapes restantes sont facultatives.
Console
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). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.
Dans la liste déroulante Emplacement, choisissez un emplacement pour votre environnement.
Un emplacement est la région où se trouve l'environnement.
Dans la liste déroulante Version d'image, sélectionnez une image Managed Airflow avec la version d'Airflow requise.
Dans la liste déroulante Compte de service, sélectionnez un compte de service pour votre environnement.
Si vous ne disposez pas encore d'un compte de service pour votre environnement, consultez Créer ou choisir un compte de service d'environnement.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION \
--service-account "SERVICE_ACCOUNT"
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.
LOCATIONpar la région de l'environnement.Un emplacement est la région où se trouve l'environnement.
SERVICE_ACCOUNTpar le compte de service de votre environnement.IMAGE_VERSIONpar le nom d'une image Managed Airflow.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
"
API
Rédigez une requête API environments.create. Spécifiez la configuration dans la ressource Environment.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
PROJECT_IDpar l'ID du projet.LOCATIONpar la région de l'environnement.Un emplacement est la région dans laquelle se trouve l'environnement.
ENVIRONMENT_NAMEpar le nom de l'environnement.Le nom doit commencer par une lettre minuscule suivie de 1 à 62 caractères (lettres minuscules, chiffres ou traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.
IMAGE_VERSIONpar le nom d'une image Managed Airflow.SERVICE_ACCOUNTpar le compte de service de votre environnement.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-2.17.14-airflow-2.11.1"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Pour créer un environnement avec des paramètres par défaut à un emplacement spécifié, ajoutez le bloc de ressources suivant à votre configuration Terraform, puis exécutez terraform apply.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
ENVIRONMENT_NAMEpar 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). Il ne peut pas se terminer par un trait d'union. Le nom de l'environnement est utilisé pour créer des sous-composants pour l'environnement. Vous devez donc indiquer un nom également valide pour les buckets Cloud Storage. Pour obtenir une liste des restrictions, consultez la page Consignes de dénomination des buckets.
LOCATIONpar la région de l'environnement.Un emplacement est la région où se trouve l'environnement.
IMAGE_VERSIONpar le nom d'une image Managed Airflow.SERVICE_ACCOUNTpar le compte de service de votre environnement.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.17.14-airflow-2.11.1"
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Étape 3 : Accorder les autorisations requises au compte de service Managed Airflow
Lorsque vous activez l'API Cloud Composer dans votre projet, le compte Agent de service Composer est créé dans votre projet. Managed Airflow utilise ce compte pour effectuer des opérations dans votre projetGoogle Cloud .
Le rôle Extension de l'agent de service de l'API Cloud Composer v2 fournit des autorisations supplémentaires au compte d'agent de service Managed Airflow. Ce rôle n'est pas attribué automatiquement. Vous devez l'accorder manuellement.
Console
Lorsque vous créez un environnement dans votre projet, si l'agent de service Managed Airflow ne dispose pas des autorisations requises sur le compte de service de l'environnement, une section Accorder les autorisations requises au compte de service Cloud Composer s'affiche.
Vous ajoutez le compte d'agent de service Managed Airflow en tant que nouveau compte principal au compte de service de votre environnement et vous lui attribuez le rôle Extension de l'agent de service de l'API Cloud Composer v2.
Vérifiez que vous utilisez le compte de service prévu pour votre environnement, puis cliquez sur Accorder.
gcloud
Vous ajoutez le compte d'agent de service Managed Airflow en tant que nouveau compte principal au compte de service de votre environnement et vous lui attribuez le rôle Extension de l'agent de service de l'API Cloud Composer v2.
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT \
--member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
Remplacez :
SERVICE_ACCOUNTpar le compte de service de votre environnement.PROJECT_NUMBERpar le numéro de projet
Exemple :
gcloud iam service-accounts add-iam-policy-binding \
example-account@example-project.iam.gserviceaccount.com \
--member serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
API
Pour attribuer le rôle, vous devez modifier la stratégie d'autorisation existante à l'aide du modèle lecture-modification-écriture :
- Lisez la stratégie d'autorisation existante pour le compte de service de votre environnement.
- Modifiez-le pour inclure le rôle
roles/composer.ServiceAgentV2Extpour l'agent de service Managed Airflow. - Réécrivez la stratégie d'autorisation existante.
Pour en savoir plus, consultez la page Contrôler l'accès de manière automatisée.
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Remplacez :
PROJECT_NUMBERpar le numéro de projet
Exemple :
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Terraform
Ajoutez une liaison de rôle à la stratégie d'autorisation du compte de service de votre environnement.
Vous ajoutez le compte d'agent de service Managed Airflow en tant que nouveau compte principal au compte de service de votre environnement et vous lui attribuez le rôle Extension de l'agent de service de l'API Cloud Composer v2.
Si vous n'utilisez pas Terraform pour définir la stratégie d'autorisation du compte de service de votre environnement, n'utilisez pas l'exemple suivant. Ajoutez plutôt cette liaison à l'aide d'autres méthodes.
resource "google_service_account_iam_member" "custom_service_account" {
provider = google-beta
service_account_id = "SERVICE_ACCOUNT"
role = "roles/composer.ServiceAgentV2Ext"
member = "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
}
Remplacez :
SERVICE_ACCOUNTpar le compte de service de votre environnement.PROJECT_NUMBERpar le numéro de projet
Exemple :
resource "google_service_account_iam_member" "custom_service_account" {
provider = google-beta
service_account_id = "example-account@example-project.iam.gserviceaccount.com"
role = "roles/composer.ServiceAgentV2Ext"
member = "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
}
Étape 4 : (Facultatif) Configurer les paramètres de scaling et de performances de l'environnement
Pour spécifier la configuration de scaling et de performances de votre environnement, sélectionnez la taille de l'environnement et la configuration des charges de travail.
Vous pouvez modifier tous les paramètres de performances et de mise à l'échelle après avoir créé un environnement.
Les paramètres suivants contrôlent le scaling et les performances :
Taille de l'environnement Contrôle les paramètres de performances de l'infrastructure Managed Airflow gérée qui inclut la base de données Airflow. Pensez à choisir une taille d'environnement plus grande si vous souhaitez exécuter un nombre important de DAG et de tâches avec des performances d'infrastructure plus élevées. Par exemple, une taille d'environnement plus importante augmente le nombre d'entrées de journaux de tâches Airflow que votre environnement peut traiter avec un délai minimal.
Configuration des charges de travail. Contrôle l'échelle et les performances des composants Airflow qui s'exécutent dans un cluster GKE de votre environnement.
Programmeur Airflow. Analyse les fichiers DAG, planifie l'exécution des DAG en fonction de l'intervalle de programmation et met en file d'attente les tâches que les nœuds de calcul Airflow exécuteront.
Votre environnement peut exécuter plusieurs programmeurs Airflow à la fois. Utilisez plusieurs planificateurs pour répartir la charge entre les instances de planificateur, et ainsi améliorer les performances et la fiabilité.
L'augmentation du nombre de programmeurs n'améliore pas toujours les performances d'Airflow. Par exemple, un seul planificateur peut offrir de meilleures performances que deux. Cela peut se produire lorsque le programmeur supplémentaire n'est pas utilisé et consomme donc des ressources de votre environnement sans contribuer aux performances globales. Les performances réelles du planificateur dépendent du nombre de nœuds de calcul Airflow, du nombre de DAG et de tâches exécutés dans votre environnement, ainsi que de la configuration d'Airflow et de l'environnement.
Nous vous recommandons de commencer par deux programmeurs, puis de surveiller les performances de votre environnement. Si vous modifiez le nombre de programmeurs, vous pouvez toujours rétablir l'échelle du nombre de programmeurs d'origine de votre environnement.
Pour en savoir plus sur la configuration de plusieurs programmeurs, consultez la documentation Airflow.
Déclencheur Airflow. Surveille de manière asynchrone toutes les tâches différées de votre environnement. Si vous disposez d'au moins une instance de déclencheur dans votre environnement (ou d'au moins deux dans des environnements hautement résilients), vous pouvez utiliser des opérateurs différables dans vos DAG.
Dans Managed Airflow (2e génération), le déclencheur Airflow est désactivé par défaut. Si vous souhaitez créer un environnement avec un déclencheur, définissez le nombre de déclencheurs sur un ou plusieurs.
Serveur Web Airflow. Exécute l'interface Web Airflow, qui vous permet de surveiller, de gérer et de visualiser vos DAG.
Nœuds de calcul Airflow. Exécuter des tâches planifiées par les programmeurs Airflow Le nombre minimal et maximal de nœuds de calcul de votre environnement change de façon dynamique en fonction du nombre de tâches de la file d'attente.
Console
Vous pouvez sélectionner un préréglage pour votre environnement. Lorsque vous sélectionnez un préréglage, les paramètres de scaling et de performances de ce préréglage sont automatiquement sélectionnés. Vous avez également la possibilité de sélectionner un préréglage prédéfini personnalisé et de spécifier tous les paramètres d'évolutivité et de performances de votre environnement.
Pour sélectionner la configuration de scaling et de performances de votre environnement, sur la page Créer un environnement :
Pour utiliser des valeurs prédéfinies, dans la section Ressources de l'environnement, cliquez sur Petite, Moyenne ou Grande.
Pour spécifier des valeurs personnalisées pour les paramètres de scaling et de performances, procédez comme suit :
Dans la section Ressources d'environnement, cliquez sur Personnalisées.
Dans la section Scheduler (Planificateur), définissez le nombre de planificateurs que vous souhaitez utiliser, ainsi que l'allocation de ressources pour leur processeur, leur mémoire et leur stockage.
Dans la section Déclencheur, utilisez le champ Nombre de déclencheurs pour saisir le nombre de déclencheurs dans votre environnement.
Si vous ne souhaitez pas utiliser d'opérateurs différables dans vos DAG, définissez le nombre de déclencheurs sur zéro. Par défaut, le déclencheur est désactivé dans Managed Airflow (2e génération).
Si vous définissez au moins un déclencheur pour votre environnement, utilisez les champs Processeur et Mémoire pour configurer l'allocation de ressources pour vos déclencheurs.
Dans la section Processeur DAG, spécifiez le nombre de processeurs DAG dans votre environnement, ainsi que la quantité de processeurs, de mémoire et de stockage pour chaque processeur DAG.
Les environnements hautement résilients nécessitent au moins deux processeurs DAG.
Dans la section Serveur Web, spécifiez la quantité de processeurs, de mémoire et d'espace de stockage pour le serveur Web.
Dans la section Worker, spécifiez les éléments suivants :
- Nombre minimal et maximal de nœuds de calcul pour les limites d'autoscaling dans votre environnement.
- L'allocation du processeur, de la mémoire et du stockage pour vos nœuds de calcul
Dans la section Infrastructure de base, dans la liste déroulante Taille de l'environnement, sélectionnez la taille de l'environnement.
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres d'échelle et de performances de votre environnement.
--environment-sizespécifie la taille de l'environnement.--scheduler-countspécifie le nombre de programmeurs.--scheduler-cpuspécifie le nombre de processeurs pour un programmateur Airflow.--scheduler-memoryspécifie la quantité de mémoire pour un programmeur Airflow.--scheduler-storagespécifie la quantité d'espace disque pour un planificateur Airflow.--triggerer-countspécifie le nombre de déclencheurs Airflow dans votre environnement. La valeur par défaut de cette option est0. Vous avez besoin de déclencheurs si vous souhaitez utiliser des opérateurs différables dans vos DAG.- Pour les environnements à résilience standard, utilisez une valeur comprise entre
0et10. - Pour les environnements hautement résilients, utilisez
0ou une valeur comprise entre2et10.
- Pour les environnements à résilience standard, utilisez une valeur comprise entre
--triggerer-cpuspécifie le nombre de processeurs pour un déclencheur Airflow, en unités de vCPU. Valeurs autorisées :0.5,0.75,1. La valeur par défaut est0.5.--triggerer-memoryspécifie la quantité de mémoire pour un déclencheur Airflow, en Go. La valeur par défaut est0.5.La mémoire minimale requise est égale au nombre de processeurs alloués aux déclencheurs. La valeur maximale autorisée est égale au nombre de processeurs de déclencheur multiplié par 6,5.
Par exemple, si vous définissez l'option
--triggerer-cpusur1, la valeur minimale pour--triggerer-memoryest1et la valeur maximale est6.5.--web-server-cpuspécifie le nombre de processeurs pour le serveur Web Airflow.--web-server-memoryspécifie la quantité de mémoire pour le serveur Web Airflow.--web-server-storagespécifie la quantité d'espace disque pour le serveur Web Airflow.--worker-cpuspécifie le nombre de processeurs pour un nœud de calcul Airflow.--worker-memoryspécifie la quantité de mémoire pour un nœud de calcul Airflow.--worker-storagespécifie la quantité d'espace disque pour un nœud de calcul Airflow.--min-workersspécifie le nombre minimal de nœuds de calcul Airflow. Le cluster de votre environnement exécute au moins ce nombre de nœuds de calcul.--max-workersspécifie le nombre maximal de nœuds de calcul Airflow. Le cluster de votre environnement exécute au maximum ce nombre de nœuds de calcul.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--environment-size ENVIRONMENT_SIZE \
--scheduler-count SCHEDULER_COUNT \
--scheduler-cpu SCHEDULER_CPU \
--scheduler-memory SCHEDULER_MEMORY \
--scheduler-storage SCHEDULER_STORAGE \
--triggerer-count TRIGGERER_COUNT \
--triggerer-cpu TRIGGERER_CPU \
--triggerer-memory TRIGGERER_MEMORY \
--web-server-cpu WEB_SERVER_CPU \
--web-server-memory WEB_SERVER_MEMORY \
--web-server-storage WEB_SERVER_STORAGE \
--worker-cpu WORKER_CPU \
--worker-memory WORKER_MEMORY \
--worker-storage WORKER_STORAGE \
--min-workers WORKERS_MIN \
--max-workers WORKERS_MAX
Remplacez :
ENVIRONMENT_SIZEavecsmall,medium,large.SCHEDULER_COUNTpar le nombre de programmeurs.SCHEDULER_CPUpar le nombre de processeurs d'un programmeur, en unités de vCPU.SCHEDULER_MEMORYpar la quantité de mémoire d'un programmeur.SCHEDULER_STORAGEpar la taille du disque d'un programmeur.TRIGGERER_COUNTpar le nombre de déclencheurs.TRIGGERER_CPUpar le nombre de processeurs pour un déclencheur, en unités de vCPU.TRIGGERER_MEMORYavec la quantité de mémoire pour un déclencheur, en Go.WEB_SERVER_CPUpar le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.WEB_SERVER_MEMORYpar la quantité de mémoire du serveur Web.WEB_SERVER_STORAGEpar la quantité de mémoire du serveur Web.WORKER_CPUpar le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.WORKER_MEMORYpar la quantité de mémoire pour un nœud de calcul.WORKER_STORAGEpar l'espace disque pour un nœud de calcul.WORKERS_MINpar le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.WORKERS_MAXpar le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--environment-size small \
--scheduler-count 1 \
--scheduler-cpu 0.5 \
--scheduler-memory 2.5GB \
--scheduler-storage 2GB \
--triggerer-count 1 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5GB \
--web-server-cpu 1 \
--web-server-memory 2.5GB \
--web-server-storage 2GB \
--worker-cpu 1 \
--worker-memory 2GB \
--worker-storage 2GB \
--min-workers 2 \
--max-workers 4
API
Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig > WorkloadsConfig, spécifiez les paramètres de performances et d'échelle de l'environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": SCHEDULER_CPU,
"memoryGb": SCHEDULER_MEMORY,
"storageGb": SCHEDULER_STORAGE,
"count": SCHEDULER_COUNT
},
"triggerer": {
"count": TRIGGERER_COUNT,
"cpu": TRIGGERER_CPU,
"memoryGb": TRIGGERER_MEMORY
},
"webServer": {
"cpu": WEB_SERVER_CPU,
"memoryGb": WEB_SERVER_MEMORY,
"storageGb": WEB_SERVER_STORAGE
},
"worker": {
"cpu": WORKER_CPU,
"memoryGb": WORKER_MEMORY,
"storageGb": WORKER_STORAGE,
"minCount": WORKERS_MIN,
"maxCount": WORKERS_MAX
}
},
"environmentSize": "ENVIRONMENT_SIZE",
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
SCHEDULER_CPUpar le nombre de processeurs d'un programmeur, en unités de processeurs virtuels.SCHEDULER_MEMORYavec la quantité de mémoire pour un programmateur, en Go.SCHEDULER_STORAGEpar la taille du disque d'un programmeur, en Go.SCHEDULER_COUNTpar le nombre de programmeurs.TRIGGERER_COUNTpar le nombre de déclencheurs. La valeur par défaut est0. Vous avez besoin de déclencheurs si vous souhaitez utiliser des opérateurs différables dans vos DAG.- Pour les environnements à résilience standard, utilisez une valeur comprise entre
0et10. - Pour les environnements hautement résilients, utilisez
0ou une valeur comprise entre2et10.
Si vous utilisez au moins un déclencheur, vous devez également spécifier les paramètres
TRIGGERER_CPUetTRIGGERER_MEMORY:- Pour les environnements à résilience standard, utilisez une valeur comprise entre
TRIGGERER_CPUspécifie le nombre de processeurs pour un déclencheur, en unités de vCPU. Valeurs autorisées :0.5,0.75,1.TRIGGERER_MEMORYconfigure la quantité de mémoire pour un déclencheur. La mémoire minimale requise est égale au nombre de processeurs alloués aux déclencheurs. La valeur maximale autorisée est égale au nombre de processeurs du déclencheur multiplié par 6,5.Par exemple, si vous définissez
TRIGGERER_CPUsur1, la valeur minimale pourTRIGGERER_MEMORYest1et la valeur maximale est6.5.WEB_SERVER_CPUpar le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.WEB_SERVER_MEMORYpar la quantité de mémoire pour le serveur Web, en Go.WEB_SERVER_STORAGEpar l'espace disque pour le serveur Web, en Go.WORKER_CPUpar le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.WORKER_MEMORYpar la quantité de mémoire pour un nœud de calcul, en Go.WORKER_STORAGEpar l'espace disque pour un nœud de calcul, en Go.WORKERS_MINpar le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.WORKERS_MAXpar le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.ENVIRONMENT_SIZEavec la taille de l'environnement :ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_SIZE_LARGE.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": 2.5,
"memoryGb": 2.5,
"storageGb": 2,
"count": 1
},
"triggerer": {
"cpu": 0.5,
"memoryGb": 0.5,
"count": 1
},
"webServer": {
"cpu": 1,
"memoryGb": 2.5,
"storageGb": 2
},
"worker": {
"cpu": 1,
"memoryGb": 2,
"storageGb": 2,
"minCount": 2,
"maxCount": 4
}
},
"environmentSize": "ENVIRONMENT_SIZE_SMALL",
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de scaling et de performances de votre environnement.
Dans le bloc
config:- Le champ
environment_sizecontrôle la taille de l'environnement.
- Le champ
Dans le bloc
workloads_config:- Le champ
scheduler.cpuspécifie le nombre de processeurs pour un programmeur Airflow. - Le champ
scheduler.memory_gbspécifie la quantité de mémoire pour un planificateur Airflow. - Le champ
scheduler.storage_gbspécifie la quantité d'espace disque pour un programmeur. - Le champ
scheduler.countspécifie le nombre de planificateurs dans votre environnement. - Le champ
triggerer.cpuspécifie le nombre de processeurs pour un déclencheur Airflow. - Le champ
triggerer.memory_gbspécifie la quantité de mémoire pour un déclencheur Airflow. Le champ
triggerer.countspécifie le nombre de déclencheurs dans votre environnement.Le champ
web_server.cpuspécifie le nombre de processeurs pour le serveur Web Airflow.Le champ
web_server.memory_gbspécifie la quantité de mémoire pour le serveur Web Airflow.Le champ
web_server.storage_gbspécifie la quantité d'espace disque pour le serveur Web Airflow.Le champ
worker.cpuspécifie le nombre de processeurs pour un nœud de calcul Airflow.Le champ
worker.memory_gbspécifie la quantité de mémoire pour un nœud de calcul Airflow.Le champ
worker.storage_gbspécifie la quantité d'espace disque pour un nœud de calcul Airflow.Le champ
worker.min_countspécifie le nombre minimal de nœuds de calcul dans votre environnement.Le champ
worker.max_countspécifie le nombre maximal de nœuds de calcul dans votre environnement.
- Le champ
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
cpu = SCHEDULER_CPU
memory_gb = SCHEDULER_MEMORY
storage_gb = SCHEDULER_STORAGE
count = SCHEDULER_COUNT
}
triggerer {
count = TRIGGERER_COUNT
cpu = TRIGGERER_CPU
memory_gb = TRIGGERER_MEMORY
}
web_server {
cpu = WEB_SERVER_CPU
memory_gb = WEB_SERVER_MEMORY
storage_gb = WEB_SERVER_STORAGE
}
worker {
cpu = WORKER_CPU
memory_gb = WORKER_MEMORY
storage_gb = WORKER_STORAGE
min_count = WORKERS_MIN
max_count = WORKERS_MAX
}
}
environment_size = "ENVIRONMENT_SIZE"
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région où se trouve l'environnement.SERVICE_ACCOUNTpar le compte de service de votre environnement.SCHEDULER_CPUpar le nombre de processeurs d'un programmeur, en unités de vCPU.SCHEDULER_MEMORYavec la quantité de mémoire pour un programmateur, en Go.SCHEDULER_STORAGEpar la taille du disque d'un programmeur, en Go.SCHEDULER_COUNTpar le nombre de programmeurs.TRIGGERER_COUNTpar le nombre de déclencheurs.TRIGGERER_CPUpar le nombre de processeurs pour un déclencheur, en unités de vCPU.TRIGGERER_MEMORYavec la quantité de mémoire pour un déclencheur, en Go.WEB_SERVER_CPUpar le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.WEB_SERVER_MEMORYpar la quantité de mémoire pour le serveur Web, en Go.WEB_SERVER_STORAGEpar l'espace disque pour le serveur Web, en Go.WORKER_CPUpar le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.WORKER_MEMORYpar la quantité de mémoire pour un nœud de calcul, en Go.WORKER_STORAGEpar l'espace disque pour un nœud de calcul, en Go.WORKERS_MINpar le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.WORKERS_MAXpar le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.ENVIRONMENT_SIZEavec la taille de l'environnement :ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_SIZE_LARGE.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
cpu = 2.5
memory_gb = 2.5
storage_gb = 2
count = 1
}
triggerer {
count = 1
cpu = 0.5
memory_gb = 0.5
}
dag_processor {
cpu = 1
memory_gb = 2
storage_gb = 1
count = 1
}
web_server {
cpu = 1
memory_gb = 2.5
storage_gb = 2
}
worker {
cpu = 1
memory_gb = 2
storage_gb = 2
min_count = 2
max_count = 4
}
}
environment_size = "ENVIRONMENT_SIZE_SMALL"
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Étape 5 : (Facultatif) Activer le mode haute résilience
Les environnements Managed Airflow hautement résilients (haute disponibilité) utilisent des mécanismes de redondance et de basculement intégrés qui réduisent la sensibilité de l'environnement aux défaillances zonales et aux pannes de point de défaillance unique.
Un environnement très résilient est multizonal et s'exécute dans au moins deux zones d'une région sélectionnée. Les composants suivants s'exécutent dans des zones distinctes :
Exactement deux programmeurs Airflow
Au moins deux déclencheurs (si le nombre de déclencheurs n'est pas défini sur
0)Deux serveurs Web
Le nombre minimal de nœuds de calcul est défini sur deux, et le cluster de votre environnement répartit les instances de nœuds de calcul entre les zones. En cas de panne zonale, les instances de nœud de calcul concernées sont reprogrammées dans une autre zone. Le composant Cloud SQL d'un environnement hautement résilient comporte une instance principale et une instance de secours qui sont réparties entre les zones.
Console
Sur la page Créer un environnement :
Dans la section Mode de résilience, sélectionnez Résilience élevée.
Dans la section Ressources de l'environnement, sélectionnez les paramètres de scaling pour un environnement hautement résilient. Les environnements très résilients nécessitent exactement deux planificateurs, zéro ou entre deux et dix déclencheurs, et au moins deux nœuds de calcul :
Cliquez sur Custom (Personnalisé).
Dans la liste déroulante Nombre de programmateurs, sélectionnez
2.Dans la liste déroulante Nombre de déclencheurs, sélectionnez
0ou une valeur comprise entre2et10. Configurez l'allocation de processeur et de mémoire pour vos déclencheurs.Dans la liste déroulante Nombre minimal de nœuds de calcul, sélectionnez
2ou plus, selon le nombre de nœuds de calcul requis.
Dans la section Configuration du réseau :
Dans Type de mise en réseau, sélectionnez Environnement d'adresse IP privée.
Si nécessaire, spécifiez d'autres paramètres réseau.
gcloud
Lorsque vous créez un environnement, l'argument --enable-high-resilience active le mode haute résilience.
Définissez les arguments suivants :
--enable-high-resilience--enable-private-environmentet d'autres paramètres réseau pour un environnement IP privé, si nécessaire--scheduler-countà2--triggerer-countà0ou une valeur comprise entre2et10. Si vous utilisez des déclencheurs, les options--triggerer-cpu and--triggerer-memory` sont également requises pour la création de l'environnement.Pour en savoir plus sur les indicateurs
--triggerer-count,--triggerer-cpuet--triggerer-memory, consultez Configurer les paramètres de performances et d'échelle de l'environnement.de
--min-workersà2ou plus
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--enable-high-resilience \
--enable-private-environment \
--scheduler-count 2 \
--triggerer-count 2 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5 \
--min-workers 2
API
Lorsque vous créez un environnement, activez le mode haute résilience dans la ressource Environment > EnvironmentConfig.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"resilience_mode": "HIGH_RESILIENCE",
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"resilience_mode": "HIGH_RESILIENCE",
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, le champ resilience_mode du bloc config active le mode haute résilience.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Étape 6 : (Facultatif) Spécifiez une zone pour la base de données de l'environnement.
Vous pouvez spécifier une zone Cloud SQL préférée lorsque vous créez un environnement à résilience standard.
Console
Sur la page Créer un environnement :
Dans la section Configuration avancée, développez l'élément Afficher la configuration avancée.
Dans la liste Zone de la base de données Airflow, sélectionnez la zone Cloud SQL de votre choix.
gcloud
Lorsque vous créez un environnement, l'argument --cloud-sql-preferred-zone spécifie une zone Cloud SQL préférée.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--cloud-sql-preferred-zone SQL_ZONE
Remplacez les éléments suivants :
SQL_ZONE: zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--cloud-sql-preferred-zone us-central1-a
API
Lorsque vous créez un environnement, spécifiez la zone Cloud SQL préférée dans la ressource Environment > DatabaseConfig.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez les éléments suivants :
SQL_ZONE: zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"databaseConfig": {
"zone": "us-central1-a"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, le champ zone du bloc database_config spécifie la zone Cloud SQL préférée.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
database_config {
zone = "SQL_ZONE"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez les éléments suivants :
SQL_ZONE: zone Cloud SQL préférée. Cette zone doit se trouver dans la région où se trouve l'environnement.
Étape 7 : (Facultatif) Configurer la mise en réseau de votre environnement
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 réseau par défaut.
Environnement d'adresse IP privée (avec PSC) : Dans cette configuration, votre environnement utilise Private Service Connect pour la connectivité.
Configurez votre environnement d'adresse IP privée :
- Configurez la mise en réseau de votre projet pour les environnements IP privés.
- Configurez Private Service Connect lorsque vous créez votre environnement.
- Spécifiez d'autres paramètres pour votre environnement d'adresse IP privée, comme décrit plus loin dans cette section.
Pour un environnement d'adresse IP privée avec PSC, vous devez connaître les éléments suivants :
- L'ID de votre réseau VPC
- L'ID de votre sous-réseau VPC
Deux plages d'adresses IP secondaires dans votre sous-réseau VPC :
- Plage d'adresses IP secondaire pour les pods
- Plage d'adresses IP secondaire pour les services
Plages d'adresses IP pour les composants de l'environnement :
- Plage d'adresses IP du plan de contrôle GKE. Plage d'adresses IP pour le plan de contrôle GKE.
- Sous-réseau de connexion Managed Airflow. Plage d'adresses IP pour le sous-réseau de connexion Managed Airflow.
Environnement d'adresse IP privée (appairages de VPC). Dans cette configuration, votre environnement utilise des appairages de VPC pour la connectivité.
Configurez votre environnement d'adresse IP privée :
- Configurez la mise en réseau de votre projet pour les environnements IP privés.
- Spécifiez d'autres paramètres pour votre environnement d'adresse IP privée, comme décrit plus loin dans cette section.
Pour un environnement d'adresse IP privée avec des appairages de VPC, vous devez connaître les éléments suivants :
- L'ID de votre réseau VPC
- L'ID de votre sous-réseau VPC
Deux plages d'adresses IP secondaires dans votre sous-réseau VPC :
- Plage d'adresses IP secondaire pour les pods
- Plage d'adresses IP secondaire pour les services
Plages d'adresses IP pour les composants de l'environnement :
Plage d'adresses IP pour le plan de contrôle GKE.
Plage d'adresses IP pour l'appairage de VPC à exporter depuis le réseau Managed Airflow interne vers le réseau sélectionné. Les composants de l'infrastructure Managed Airflow utilisent des adresses IP de cette plage.
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 de la page Configurer un VPC partagé.
Pour un environnement VPC partagé, vous devez connaître :
- L'ID du réseau VPC de votre projet hôte
L'ID du sous-réseau VPC de votre projet hôte
Deux plages d'adresses IP secondaires dans le sous-réseau VPC de votre projet hôte :
- Plage d'adresses IP secondaire pour les pods
- Plage d'adresses IP secondaire pour les services
Lors de la création d'un environnement VPC partagé d'adresses IP publiques, vous devez toujours spécifier le réseau VPC, le sous-réseau et les plages d'adresses IP secondaires de votre projet hôte pour les pods et les services.
Pour créer un environnement VPC SC, vous devez créer un périmètre de service, puis créer des environnements d'adresse IP privée à l'intérieur de ce périmètre. Suivez les instructions décrites dans la section Configurer VPC Service Controls.
Pour créer un environnement avec l'option Utilisation restreinte des points de terminaison, vous devez disposer d'une règle d'administration
constraints/gcp.restrictEndpointUsagedéjà configurée, puis créer un environnement Managed Airflow (2e génération). Les environnements d'adresse IP privée nécessitent une configuration réseau supplémentaire. Suivez les instructions décrites dans Configurer des environnements avec la règle "Restreindre l'utilisation des points de terminaison".
Les options de mise en réseau supplémentaires pour les environnements sont les suivantes :
- Adresses IP publiques utilisées en mode privé. Si vous souhaitez utiliser davantage d'adresses IP, votre environnement peut utiliser en mode privé certaines plages d'adresses IP publiques en tant que plages d'adresses IP de sous-réseau internes pour les pods et les services.
- Réseaux autorisés. Si vous souhaitez accéder au plan de contrôle de votre environnement d'adresse IP privée à l'aide du protocole HTTPS, vous pouvez utiliser les réseaux autorisés pour spécifier les plages CIDR pouvant le faire.
- 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 de type "plusieurs vers un" 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 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.
Dans la section Configuration réseau, développez l'élément Afficher la configuration réseau.
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 Plage d'adresses IP secondaire pour les pods, sélectionnez ou spécifiez la plage d'adresses IP secondaire pour les pods. Vous pouvez utiliser une plage secondaire existante de votre réseau VPC ou choisir d'utiliser une plage créée automatiquement.
Dans la section Plage d'adresses IP secondaire pour les services, sélectionnez ou spécifiez la plage d'adresses IP secondaire utilisée par les services. Vous pouvez utiliser une plage secondaire existante dans votre réseau VPC ou choisir d'utiliser une plage créée automatiquement.
Dans la section Type de réseau, sélectionnez l'option Environnement d'adresse IP privée pour créer un environnement d'adresse IP privée.
Dans la section Connectivité Composer, sélectionnez le type de mise en réseau de votre environnement et spécifiez les plages d'adresses IP des composants de l'environnement :
Pour un environnement qui utilise Private Service Connect :
Sélectionnez Private Service Connect pour un environnement qui utilise Private Service Connect.
Dans la section Sous-réseau de connexion Composer, spécifiez une plage d'adresses IP pour le sous-réseau de connexion Managed Airflow. L'adresse du point de terminaison PSC est sélectionnée dans cette plage. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.
Pour un environnement qui utilise l'appairage de VPC :
Sélectionnez Appairages de VPC pour un environnement qui utilise des appairages de VPC.
Dans la section Plage d'adresses IP pour le réseau locataire Composer, spécifiez une plage d'adresses IP pour le réseau locataire Managed Airflow. Ce réseau héberge le composant proxy SQL de votre environnement. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.
Dans la section Plage d'adresses IP pour le réseau Cloud SQL, spécifiez une plage d'adresses IP pour l'instance Cloud SQL. Vous pouvez spécifier une plage personnalisée ou choisir d'utiliser la plage par défaut.
Dans la section Plage d'adresses IP pour le réseau de plan de contrôle GKE, spécifiez une plage d'adresses IP pour le plan de contrôle GKE:
Pour utiliser la plage d'adresses IP par défaut de la région où se trouve votre environnement, sélectionnez Plage d'adresses IP par défaut.
Pour spécifier une plage d'adresses IP personnalisée, sélectionnez Plage d'adresses IP personnalisée et saisissez une plage au format CIDR dans le champ Adresse IP privée du cluster GKE.
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 est privé et est destiné aux nœuds de cluster et aux VM. Un autre point de terminaison 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 plan de contrôle du cluster à l'aide de son adresse IP externe.
L'utilisation de cette option définit le niveau d'accès du plan de contrôle sur "Accès au point de terminaison public activé, réseaux autorisés activés". Cela fournit un accès limité au plan de contrôle à partir de réseaux autorisés. Par défaut, aucune adresse IP source n'est spécifiée. Vous pouvez ajouter des réseaux autorisés au cluster.
Pour désactiver l'accès au point de terminaison public à partir des réseaux autorisés, décochez la case Accéder au point de terminaison du plan de contrôle du cluster à l'aide de son adresse IP externe.
L'utilisation de cette option définit le niveau d'accès du plan de contrôle sur "Accès au point de terminaison public désactivé". Cela empêche tout accès à Internet au plan de contrôle.
gcloud
Assurez-vous que votre mise en réseau est configurée pour le type d'environnement que vous souhaitez créer.
Lorsque vous créez un environnement, les arguments suivants contrôlent les paramètres de mise en réseau. Si vous omettez un paramètre, la valeur par défaut est utilisée.
--enable-private-environmentactive un environnement d'adresse IP privée.--networkspécifie l'ID de votre réseau VPC.--subnetworkspécifie l'ID de votre sous-réseau VPC.--cluster-secondary-range-nameou--cluster-ipv4-cidrconfigure la plage secondaire des pods.--services-secondary-range-nameou--services-ipv4-cidrpermet de configurer la plage secondaire des services.--master-ipv4-cidrspécifie une plage pour le plan de contrôle GKE.
(Environnements avec PSC)
--connection-subnetworkspécifie une plage pour le sous-réseau de connexion Managed Airflow, qui héberge le point de terminaison PSC.(Environnements avec appairages de VPC)
--connection-type=VPC_PEERINGspécifie qu'un environnement doit utiliser des appairages de VPC.(Environnements avec appairages de VPC)
--composer-network-ipv4-cidrspécifie une plage pour le réseau du locataire Managed Airflow. Ce réseau héberge le composant proxy SQL de votre environnement.(Environnements avec des peerings VPC)
--cloud-sql-ipv4-cidrspécifie une plage pour l'instance Cloud SQL.
--enable-private-endpointcontrô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-networkset--master-authorized-networksconfigurent les réseaux autorisés pour votre environnement.--enable-privately-used-public-ipsconfigure des adresses IP publiques utilisées en mode privé pour votre environnement.--enable-ip-masq-agentactive l'agent de masquage d'adresses IP.
Exemple (environnement IP privé)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
--cluster-ipv4-cidr PODS_RANGE \
--services-ipv4-cidr SERVICES_RANGE \
--master-ipv4-cidr CONTROL_PLANE_RANGE \
--connection-subnetwork COMPOSER_PSC_RANGE \
Remplacez :
NETWORK_IDpar votre ID de réseau VPC ;SUBNETWORK_IDpar votre ID de sous-réseau VPC ;PODS_RANGEpar la plage secondaire destinée aux pods ;SERVICES_RANGEpar la plage secondaire destinée aux services ;CONTROL_PLANE_RANGEpar la plage secondaire du plan de contrôle GKE ;COMPOSER_PSC_RANGEpar la plage du sous-réseau de connexion Managed Airflow.
Étape 8 : (Facultatif) Ajouter des tags réseau
Les tags réseau sont appliqués à toutes les VM de nœud du cluster de votre environnement. Les tags servent à identifier les sources ou les cibles valides pour les pare-feu de réseau. Chaque tag de la liste doit respecter la norme RFC 1035.
Par exemple, vous pouvez ajouter des tags réseau si vous prévoyez de limiter le trafic pour un environnement d'adresse IP privée avec des règles de pare-feu.
Console
Sur la page Créer un environnement :
- Localisez la section Configuration réseau.
- Dans le champ Tags réseau, saisissez les tags réseau de votre environnement.
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent les tags réseau :
--tagsspécifie une liste de tags réseau séparés par une virgule, appliqués à toutes les VM de nœud.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--tags TAGS
Remplacez :
TAGSpar une liste de tags réseau séparés par une virgule.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--tags group1,production
API
Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig, spécifiez les tags réseau de votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
],
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
TAGpar un tag réseau.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"tags": [
"group1",
"production"
],
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, les champs suivants définissent les tags réseau pour votre environnement :
- Le champ
tagsdu blocnode_configspécifie une liste de tags réseau séparés par une virgule, appliqués à toutes les VM de nœud.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
tags = ["TAGS"]
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
TAGSpar une liste de tags réseau séparés par une virgule.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
tags = ["group1","production"]
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Étape 9 : (Facultatif) Configurer l'accès réseau au serveur Web
Les paramètres d'accès au serveur Web Airflow ne dépendent pas du type de votre environnement. Vous pouvez configurer l'accès au serveur Web séparément. Par exemple, un environnement d'adresse IP privée peut toujours laisser l'interface utilisateur d'Airflow accessible depuis Internet.
Vous ne pouvez pas configurer les plages d'adresses IP autorisées à l'aide d'adresses IP privées.
Console
Sur la page Créer un environnement :
Dans la section Configuration du réseau, développez l'élément Afficher la configuration du réseau.
Dans la section Contrôle de l'accès réseau au serveur Web :
Pour autoriser l'accès au serveur Web Airflow depuis toutes les adresses IP, sélectionnez Autoriser l'accès depuis toutes les adresses IP.
Pour limiter l'accès à des plages d'adresses IP spécifiques, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques. Dans le champ Plage d'adresses IP, spécifiez une plage d'adresses IP au format CIDR. Dans le champ Description, spécifiez une description facultative pour cette plage. Si vous souhaitez spécifier plusieurs plages, cliquez sur Ajouter une plage d'adresses IP.
Pour refuser l'accès pour toutes les adresses IP, sélectionnez Autoriser l'accès uniquement depuis des adresses IP spécifiques, puis cliquez sur Supprimer l'élément à côté de l'entrée de plage vide.
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent le niveau d'accès du serveur Web :
--web-server-allow-allpermet d'accéder à Airflow depuis toutes les adresses IP. Il s'agit de l'option par défaut.--web-server-allow-iplimite 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-allinterdit l'accès pour toutes les adresses IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Remplacez :
WS_IP_RANGEpar la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.WS_RANGE_DESCRIPTIONpar la description de la plage d'adresses IP.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
Lorsque vous créez un environnement, spécifiez les paramètres d'accès au serveur Web dans la ressource Environment > EnvironmentConfig.
Pour autoriser l'accès au serveur Web Airflow depuis toutes les adresses IP, omettez
webServerNetworkAccessControl.Pour limiter l'accès à des plages d'adresses IP spécifiques, spécifiez une ou plusieurs plages dans
allowedIpRanges.Pour interdire l'accès pour toutes les adresses IP, ajoutez
allowedIpRangeset faites-en une liste vide. Ne spécifiez pas de plages d'adresses IP.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
WS_IP_RANGEpar la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.WS_RANGE_DESCRIPTIONpar la description de la plage d'adresses IP.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, le bloc allowed_ip_range du bloc web_server_network_access_control contient des plages d'adresses IP pouvant accéder au serveur Web.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
WS_IP_RANGEpar la plage d'adresses IP, au format CIDR, pouvant accéder à l'interface utilisateur d'Airflow.WS_RANGE_DESCRIPTIONpar la description de la plage d'adresses IP.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "office net 1"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "office net 3"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
Étape 10 : Spécifier les remplacements de configuration Airflow et les variables d'environnement
Vous pouvez configurer des remplacements de configuration Airflow et des variables d'environnement lorsque vous créez un environnement. Vous pouvez également effectuer cette opération ultérieurement, après la création de votre environnement.
Certaines options de configuration Airflow sont bloquées et vous ne pouvez pas les remplacer.
Pour obtenir la liste des options de configuration Airflow disponibles, consultez 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 :
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 webserverdag_orientationTB
gcloud
Lorsque vous créez un environnement, les arguments suivants contrôlent les variables d'environnement et les remplacements de configuration Airflow :
--env-variablesspé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-configsspécifie une liste de clés et de valeurs séparées par une virgule pour les remplacements de configuration Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Remplacez :
ENV_VARSpar une liste de pairesNAME=VALUEséparées par une virgule pour les variables d'environnement.CONFIG_OVERRIDESavec une liste de pairesSECTION-KEY=VALUEséparées par une virgule pour les remplacements de configuration. Séparez le nom de la section de configuration par un symbole-, suivi du nom de la clé. Exemple :core-dags_are_paused_at_creation.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
--airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB
API
Lorsque vous créez un environnement, dans la ressource Environment > EnvironmentConfig, spécifiez les variables d'environnement et les remplacements de configuration Airflow.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"SECTION-KEY": "OVERRIDE_VALUE"
},
"envVariables": {
"VAR_NAME": "VAR_VALUE",
}
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
SECTIONpar la section du fichier de configuration où se trouve l'option de configuration Airflow ;KEYpar le nom de l'option de configuration Airflow ;OVERRIDE_VALUEpar la valeur de l'option de configuration Airflow ;VAR_NAMEpar le nom de la variable d'environnement.VAR_VALUEpar la valeur de la variable d'environnement ;
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"core-dags_are_paused_at_creation": "True",
"webserver-dag_orientation": "TB"
},
"envVariables": {
"SENDGRID_MAIL_FROM": "user@example.com",
"SENDGRID_API_KEY": "example-key"
}
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Lorsque vous créez un environnement, les blocs suivants contrôlent les variables d'environnement et les remplacements de configuration Airflow :
Le bloc
env_variablesdu blocsoftware_configspé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_overridesdu blocsoftware_configspécifie les remplacements de configuration Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
airflow_config_overrides = {
SECTION-KEY = "OVERRIDE_VALUE"
}
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
SECTIONpar la section du fichier de configuration où se trouve l'option de configuration Airflow ;KEYpar le nom de l'option de configuration Airflow ;OVERRIDE_VALUEpar la valeur de l'option de configuration Airflow ;VAR_NAMEpar le nom de la variable d'environnement.VAR_VALUEpar la valeur de la variable d'environnement ;
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
airflow_config_overrides = {
core-dags_are_paused_at_creation = "True"
webserver-dag_orientation = "TB"
}
env_variables = {
SENDGRID_MAIL_FROM = "user@example.com"
SENDGRID_API_KEY = "example-key"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Étape 11 : (Facultatif) Spécifier des intervalles de maintenance
Les intervalles de maintenance par défaut dans Managed Airflow (Gen 2) sont de 00h00 à 04h00 (GMT) les vendredi, samedi et dimanche de chaque semaine.
Pour spécifier des intervalles de maintenance personnalisés pour votre environnement :
Console
Sur la page Créer un environnement
Recherchez la section Intervalles de maintenance.
Dans la liste déroulante Fuseau horaire, choisissez un fuseau horaire pour les intervalles de maintenance.
Définissez Heure de début, Jours et Durée de sorte que :
Au moins 12 heures sont allouées au cours d'une même semaine.
Vous pouvez utiliser plusieurs créneaux horaires, mais chacun doit durer au moins quatre heures.
Par exemple, une période de quatre heures tous les lundis, mercredis et vendredis fournit la durée requise.
gcloud
Les arguments suivants définissent les paramètres d'intervalles de maintenance :
--maintenance-window-startdéfinit l'heure de début d'un intervalle de maintenance.--maintenance-window-enddéfinit l'heure de fin d'un intervalle de maintenance.--maintenance-window-recurrencedéfinit la récurrence de l'intervalle de maintenance.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.DATETIME_STARTavec la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.DATETIME_ENDpar 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_RECURRENCEpar une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :Le format
FREQ=DAILYindique une récurrence quotidienne.Le format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAindique une récurrence les jours sélectionnés de la semaine.
L'exemple suivant spécifie un intervalle de maintenance de six heures entre 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--maintenance-window-start '2023-01-01T01:00:00Z' \
--maintenance-window-end '2023-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
Lorsque vous créez un environnement, spécifiez les paramètres des intervalles de maintenance dans la ressource Environment > EnvironmentConfig :
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Remplacez :
DATETIME_STARTavec la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.DATETIME_ENDpar 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_RECURRENCEpar une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :Le format
FREQ=DAILYindique une récurrence quotidienne.Le format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAindique une récurrence les jours sélectionnés de la semaine.
L'exemple suivant spécifie un intervalle de maintenance de six heures entre 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"maintenanceWindow": {
"startTime": "2023-01-01T01:00:00Z",
"endTime": "2023-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Terraform
Le bloc maintenance_window spécifie les intervalles de maintenance pour votre environnement :
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
maintenance_window {
start_time = "DATETIME_START"
end_time = "DATETIME_END"
recurrence = "MAINTENANCE_RECURRENCE"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Remplacez :
DATETIME_STARTpar la date et l'heure de début au format de saisie de date/heure. Seule l'heure spécifiée est utilisée, la date est ignorée.DATETIME_ENDpar 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_RECURRENCEpar une expression RRULE RFC 5545 pour la récurrence des intervalles de maintenance. Managed Airflow accepte deux formats :- Le format
FREQ=DAILYindique une récurrence quotidienne. - Le format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAindique 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 1h et 7h (UTC) les mercredis, samedis et dimanches. La date du 1er janvier 2023 est ignorée.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2023-01-01T01:00:00Z"
end_time = "2023-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Étape 12 : (Facultatif) Intégration de la traçabilité des données
La traçabilité des données est une fonctionnalité de Knowledge Catalog qui vous permet de suivre le déplacement des données.
L'intégration de la traçabilité des données est disponible dans les versions 2.1.2 et ultérieures de Managed Airflow (Gen 2) avec les versions 2.2.5 et ultérieures d'Airflow.L'intégration de la traçabilité des données est automatiquement activée dans un nouvel environnement Managed Airflow si les conditions suivantes sont remplies :
L'API Data Lineage est activée dans votre projet. Pour en savoir plus, consultez Activer l'API Data Lineage dans la documentation Knowledge Catalog.
Aucun backend de traçabilité personnalisé n'est configuré dans Airflow.
Vous pouvez désactiver l'intégration du lineage de données lorsque vous créez un environnement. Par exemple, si vous souhaitez remplacer le comportement automatique ou choisir d'activer la traçabilité des données ultérieurement, après la création de l'environnement.
Console
Pour désactiver l'intégration du lineage des données, procédez comme suit sur la page Créer un environnement :
Dans la section Configuration avancée, développez Afficher la configuration avancée.
Dans le menu Intégration de la traçabilité Knowledge Catalog, sélectionnez Désactiver l'intégration de la traçabilité Knowledge Catalog.
gcloud
Lorsque vous créez un environnement, l'argument --disable-cloud-data-lineage-integration désactive l'intégration de la traçabilité des données.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--disable-cloud-data-lineage-integration
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région où se trouve l'environnement.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--disable-cloud-data-lineage-integration
Étape 13 : (Facultatif) Configurer le chiffrement des données (CMEK)
Par défaut, les données de votre environnement sont chiffrées à l'aide d'une clé fournie par Google.
Pour utiliser des clés de chiffrement gérées par le client (CMEK) afin de chiffrer les données dans votre environnement, suivez les instructions de la page Utiliser des clés de chiffrement gérées par le client.
Étape 14. (Facultatif) Utiliser le bucket d'un environnement personnalisé
Lorsque vous créez un environnement, Managed Airflow crée automatiquement un bucket pour celui-ci.
Vous pouvez également spécifier un bucket Cloud Storage personnalisé à partir de votre projet. Votre environnement utilise ce bucket de la même manière que le bucket créé automatiquement.
Pour utiliser un bucket d'environnement personnalisé, suivez les instructions décrites dans Utiliser le bucket d'un environnement personnalisé.
Étape 15. (Facultatif) Spécifier des libellés d'environnement
Vous pouvez attribuer des étiquettes à vos environnements pour répartir les coûts facturés en fonction de ces étiquettes.
Console
Dans la section Libellés de la page Créer un environnement :
Cliquez sur Ajouter une étiquette.
Dans les champs Clé et Valeur, spécifiez des paires clé/valeur pour les libellés d'environnement.
gcloud
Lorsque vous créez un environnement, l'argument --labels spécifie une liste de clés et de valeurs séparées par une virgule avec les libellés d'environnement.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
Remplacez :
LABELSpar une liste de pairesKEY=VALUEséparées par une virgule pour les libellés d'environnement.
Exemple :
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.14-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--labels owner=engineering-team,env=production
API
Lorsque vous créez un environnement, dans la ressource Environnement, spécifiez des libellés pour votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
Remplacez :
LABEL_KEYpar une clé de libellé d'environnement.LABEL_VALUEpar 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_KEYpar une clé de libellé d'environnement.LABEL_VALUEpar une valeur du libellé d'environnement
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
Étape suivante
- 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 Managed Airflow