Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération, version héritée)
Vous pouvez spécifier un bucket Cloud Storage personnalisé comme bucket d'un environnement lorsque vous créez un environnement. Votre environnement utilise ce bucket de la même manière que le bucket d'environnement par défaut, et le bucket d'environnement par défaut n'est pas créé.
Avec un bucket personnalisé, vous pouvez :
- utiliser une configuration de bucket conforme à vos exigences ;
- utiliser un bucket existant en permanence à des fins de développement ou de test périodiques ;
- réutiliser un bucket existant d'un environnement précédent et conserver l'intégration CI/CD et les données ;
- supprimer et recréer un environnement sans avoir à transférer des données entre les buckets ;
- préremplir le bucket personnalisé avec les données requises, telles que vos fichiers DAG, puis créer un environnement.
Avant de commencer
- Cette fonctionnalité est compatible à partir de la version 2.5.0 de Managed Airflow. Les versions antérieures de Managed Airflow (2e génération) ne sont pas compatibles avec cette fonctionnalité.
- Le bucket personnalisé doit se trouver dans la même région que l'environnement. Les buckets multirégionaux et birégionaux ne sont pas compatibles.
- Le bucket personnalisé et l'environnement doivent se trouver dans le même projet.
- Le bucket personnalisé doit être de classe de stockage standard .
- Aucune règle de conservation ni aucun verrou de règle de conservation ne doivent être appliqués au bucket personnalisé.
- L'espace de noms hiérarchique ne doit pas être activé dans le bucket personnalisé.
Il n'est pas possible d'utiliser le même bucket personnalisé avec plusieurs environnements en même temps. Managed Airflow génère une erreur si le bucket spécifié est déjà utilisé par un autre environnement. Il est possible de supprimer un environnement, puis d'utiliser le même bucket pour un autre environnement.
Si vous avez activé l'enregistrement des journaux dans le bucket de l'environnement, et que vous supprimez un environnement, puis utilisez le même bucket pour un autre environnement, le nouvel environnement n'affiche pas les journaux des tâches Airflow de l'environnement précédent dans l'interface utilisateur Airflow. Les journaux restent dans le bucket, mais le nouvel environnement ne les associe à aucune exécution de DAG.
Managed Airflow n'ajoute aucune autorisation IAM manquante au bucket Cloud Storage lorsqu'il est utilisé pour créer un environnement. Assurez-vous que le compte de service de l'environnement dispose des autorisations du rôle "Worker Composer" sur le bucket.
Créer un environnement avec un bucket personnalisé
Console
Pour spécifier un bucket Cloud Storage personnalisé lorsque vous créez un environnement :
- Sur la page Create environment (Créer un environnement), dans la section Advanced configuration (Configuration avancée), cliquez sur Show advanced configuration (Afficher la configuration avancée).
- Sélectionnez Custom bucket (Bucket personnalisé).
- Dans le champ Bucket name (Nom du bucket), spécifiez ou sélectionnez un bucket.
gcloud
Lorsque vous créez un environnement, l'argument --storage-bucket spécifie le bucket personnalisé de l'environnement.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--storage-bucket CUSTOM_STORAGE_BUCKET
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région dans laquelle se trouve l'environnementCUSTOM_STORAGE_BUCKET: nom d'un bucket Cloud Storage Vous pouvez également spécifier l'URI du bucket (avec le préfixegs://).
Exemple :
gcloud composer environments create example-environment \
--location us-cental1 \
--storage-bucket us-central1-example-bucket
API
Lorsque vous créez un environnement, dans la ressource Environment > StorageConfig, spécifiez un bucket personnalisé pour votre environnement.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"storageConfig": {
"bucket": "CUSTOM_STORAGE_BUCKET"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projetLOCATION: région dans laquelle se trouve l'environnementENVIRONMENT_NAME: nom de votre environnementCUSTOM_STORAGE_BUCKET: nom d'un bucket Cloud Storage (sans le préfixegs://)
Exemple :
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"storageConfig": {
"bucket": "us-central1-example-bucket"
}
}
Terraform
Lorsque vous créez un environnement, le champ bucket du bloc storage_config spécifie le bucket personnalisé de l'environnement.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
storage_config {
bucket = CUSTOM_STORAGE_BUCKET
}
}
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région dans laquelle se trouve l'environnementCUSTOM_STORAGE_BUCKET: nom d'un bucket Cloud Storage Vous pouvez également spécifier l'URI du bucket (avec le préfixegs://).
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
storage_config {
bucket = "gs://us-central1-example-bucket"
}
}