Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment définir des intervalles de maintenance pour vos environnements.
À propos des intervalles de maintenance
Un intervalle de maintenance est une période pendant laquelle vous autorisez Cloud Composer pour effectuer des opérations de maintenance. Par exemple, vous pouvez vous assurer que les exécutions de tâches critiques ne sont pas interrompues en spécifiant des intervalles de maintenance en dehors des heures de planification du DAG.
Les intervalles de maintenance vous permettent de contrôler les périodes pendant lesquelles peut avoir lieu pour votre environnement:
Si vous définissez des intervalles de maintenance personnalisés pour votre environnement, Cloud Composer effectue la maintenance pendant ces périodes définies.
Si vous ne définissez pas d'intervalles de maintenance pour votre environnement, Cloud Composer effectue la maintenance à tout moment.
Que se passe-t-il pendant les intervalles de maintenance ?
Lorsque vous spécifiez des intervalles de maintenance, vous accordez au moins 12 heures une semaine pour les opérations de maintenance:
Votre environnement reste disponible pendant les intervalles de maintenance. Certains composants de votre environnement peut devenir temporairement indisponible lors de la maintenance sont en cours.
Les 12 heures sont nécessaires pour que Cloud Composer ait suffisamment de temps pour planifier et effectuer toutes les opérations de maintenance. Cela ne signifie pas que les opérations de maintenance prennent 12 heures complètes ou ont même lieu chaque semaine.
Vous pouvez toujours exécuter vos DAG pendant les intervalles de maintenance, à condition que certaines tâches puissent être interrompues et réessayées. Si vous exécutez des DAG pendant les intervalles de maintenance, assurez-vous d'activer la répétition des tentatives de tâches. Vous pouvez configurer les nouvelles tentatives de tâches au niveau de la configuration Airflow, du DAG ou de la tâche.
Les opérations de maintenance ont les effets suivants sur votre environnement :
Il est possible que l'interface utilisateur d'Airflow soit temporairement indisponible.
Modifier certains paramètres de votre environnement ou passer à une version ultérieure peut ne pas être possible temporairement.
Les requêtes SQL directes vers la base de données Airflow peuvent prendre plus de temps que d'habitude et peuvent nécessiter une nouvelle tentative.
Certaines tâches Airflow peuvent être interrompues. Une fois l'opération de maintenance terminée, Airflow planifie des nouvelles tentatives pour ces tâches (si ce n'est pas le cas).
Intervalles de maintenance par défaut
Par défaut, les environnements Cloud Composer 1 n'ont pas de périodes de maintenance définies si vous les créez à l'aide de la console Google Cloud, de l'API ou de Terraform. Mer recommandent 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.
Comment utiliser des intervalles de maintenance
Les opérations de maintenance peuvent affecter l'exécution de vos DAG et d'Airflow Nous vous recommandons donc de procéder comme suit:
Définissez des intervalles de maintenance pour vos environnements Cloud Composer.
Programmez les exécutions de DAG en dehors des intervalles de maintenance spécifiés en utilisant les paramètres
start_date
etschedule_interval
dans vos DAG.
Spécifier des intervalles de maintenance pour les nouveaux environnements
Vous pouvez spécifier des intervalles de maintenance lorsque vous créez un environnement. Pour en savoir plus, consultez la page Créer des environnements.
Spécifier des intervalles de maintenance pour les environnements existants
Console
Pour définir ou modifier des intervalles de maintenance pour un environnement existant, mettez à jour l'environnement :
Dans la console Google Cloud, accédez à la page Environnements.
Sélectionnez votre environnement.
Accédez à l'onglet Configuration de l'environnement.
À côté de l'entrée Intervalles de maintenance, cliquez sur Modifier.
Dans la boîte de dialogue Intervalles de maintenance, cochez la case Définir une heure personnalisée pour les intervalles de maintenance.
Définissez l'heure de début, le fuseau horaire, 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.
Cliquez sur Enregistrer et attendez la mise à jour de votre environnement.
gcloud
Lorsque vous mettez à jour un environnement, les arguments suivants définissent les paramètres des 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 update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Remplacez :
ENVIRONMENT_NAME
par le nom de l'environnement.DATETIME_START
par la date et l'heure de début au format "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 update example-environment \
--location us-central1 \
--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
Rédigez une requête API
environments.patch
.Dans cette requête :
Dans le paramètre
updateMask
, spécifiez le masqueconfig.maintenanceWindow
.Dans le corps de la requête, spécifiez les paramètres des intervalles de maintenance.
{
"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.
- Le format
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é.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.maintenanceWindow
{
"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 :
ENVIRONMENT_NAME
par le nom de l'environnement.LOCATION
par la région dans laquelle se trouve 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.
- 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. Le 1er janvier 2023 est ignoré.
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"
}
}
}