Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Cette page accompagne la page principale sur la création d'environnements. Il explique comment configurer un environnement Cloud Composer et un compte de service géré par l'utilisateur pour cet environnement dans un projet Google Cloud existant avec Terraform. Vous pouvez utiliser cette page comme point de départ, puis ajouter d'autres paramètres de configuration pour votre environnement, si nécessaire.
Avant de commencer
Ce guide suppose que vous disposez d'un projet Google Cloud avec la facturation configurée:
- Vous pouvez utiliser un projet existant.
- Vous pouvez créer un projet à l'aide de la console Google Cloud, de la Google Cloud CLI, de l'API ou d'une bibliothèque cliente Python.
- Vous pouvez créer et gérer votre projet à l'aide de Terraform. Pour en savoir plus, consultez la documentation Terraform sur la ressource
google_project
.
S'authentifier avec Google Cloud
Pour vous authentifier avec Google Cloud, exécutez:
gcloud auth application-default login
Pour en savoir plus sur cette commande, consultez la page sur gcloud auth application-default
.
Configurer le fournisseur Google dans Terraform
Spécifiez votre ID de projet existant et une région par défaut pour les ressources. Votre environnement Cloud Composer utilise cette région.
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
Activer l'API Cloud Composer
Activez l'API Cloud Composer dans votre projet:
resource "google_project_service" "composer_api" {
provider = google-beta
project = "example-project"
service = "composer.googleapis.com"
// Disabling Cloud Composer API might irreversibly break all other
// environments in your project.
// This parameter prevents automatic disabling
// of the API when the resource is destroyed.
// We recommend to disable the API only after all environments are deleted.
disable_on_destroy = false
// this flag is introduced in 5.39.0 version of Terraform. If set to true it will
//prevent you from disabling composer_api through Terraform if any environment was
//there in the last 30 days
check_if_service_has_usage_on_destroy = true
}
Créer le compte de service d'un environnement dans votre projet
Ce guide explique comment créer un compte de service d'environnement disposant de toutes les autorisations requises pour exécuter un environnement Cloud Composer.
Nous vous recommandons vivement de configurer un compte de service géré par l'utilisateur pour vos environnements Cloud Composer. Il ne doit disposer que des autorisations requises pour exécuter votre environnement et vos opérations dans vos DAG, comme décrit dans ce guide.
Bien que nous vous déconseillons d'utiliser cette approche, si vous ne spécifiez pas le compte de service d'un environnement, votre environnement Cloud Composer utilise le compte de service Compute Engine par défaut.
Le compte de service de votre environnement peut avoir besoin d'autorisations supplémentaires pour accéder à d'autres ressources de votre projet. Par exemple, si vos DAG transfèrent des données vers BigQuery, ce compte peut avoir besoin d'autorisations ou de rôles spécifiques à BigQuery.
Définissez un compte de service personnalisé avec les rôles et autorisations suivants:
resource "google_service_account" "custom_service_account" {
provider = google-beta
account_id = "custom-service-account"
display_name = "Example Custom Service Account"
}
resource "google_project_iam_member" "custom_service_account" {
provider = google-beta
project = "example-project"
member = format("serviceAccount:%s", google_service_account.custom_service_account.email)
// Role for Public IP environments
role = "roles/composer.worker"
}
Créez un environnement
Créez votre environnement à l'aide de Terraform.
L'exemple montre comment créer un environnement qui utilise un compte de service personnalisé. Vous pouvez ajouter d'autres paramètres qui définissent d'autres paramètres de configuration de votre environnement, tels que des paramètres de scaling et de performances personnalisés, ou des packages PyPI supplémentaires.
Pour en savoir plus sur les autres paramètres, consultez la page Créer des environnements.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
software_config {
image_version = "composer-3-airflow-2.10.2-build.7"
}
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
Script Terraform complet
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
resource "google_project_service" "composer_api" {
provider = google-beta
project = "example-project"
service = "composer.googleapis.com"
// Disabling Cloud Composer API might irreversibly break all other
// environments in your project.
disable_on_destroy = false
// this flag is introduced in 5.39.0 version of Terraform. If set to true it will
//prevent you from disabling composer_api through Terraform if any environment was
//there in the last 30 days
check_if_service_has_usage_on_destroy = true
}
resource "google_service_account" "custom_service_account" {
provider = google-beta
account_id = "custom-service-account"
display_name = "Example Custom Service Account"
}
resource "google_project_iam_member" "custom_service_account" {
provider = google-beta
project = "example-project"
member = format("serviceAccount:%s", google_service_account.custom_service_account.email)
// Role for Public IP environments
role = "roles/composer.worker"
}
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
software_config {
image_version = "composer-3-airflow-2.10.2-build.7"
}
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
Étape suivante
Consultez les autres pages de documentation pour en savoir plus sur la configuration de votre environnement avec Terraform. Exemple :
- Créer des environnements
- Remplacer les options de configuration Airflow
- Définir des variables d'environnement
- Installer des dépendances Python
- Faire évoluer des environnements