Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina spiega come definire periodi di manutenzione per i tuoi ambienti.
Informazioni sui periodi di manutenzione
Un periodo di manutenzione è un periodo di tempo in cui consenti a Cloud Composer di eseguire operazioni di manutenzione. Ad esempio, puoi assicurarti che le esecuzioni delle attività critiche non vengano interrotte specificando finestre di manutenzione al di fuori degli orari di pianificazione del DAG.
Con i periodi di manutenzione, hai il controllo sui periodi di tempo in cui può essere eseguita la manutenzione del tuo ambiente:
Se definisci periodi di manutenzione personalizzati per il tuo ambiente, Cloud Composer esegue la manutenzione durante questi periodi definiti.
Se non definisci periodi di manutenzione per il tuo ambiente, Cloud Composer esegue la manutenzione in qualsiasi momento.
Come funzionano i periodi di manutenzione
I periodi di manutenzione funzionano nel seguente modo:
Le operazioni di manutenzione richiedono almeno 12 ore di tempo assegnato in una singola settimana.
Puoi utilizzare più fasce orarie, ma la durata di ciascuna deve essere di almeno 4 ore.
Il tuo ambiente rimane disponibile durante i periodi di manutenzione. Alcuni componenti del tuo ambiente potrebbero diventare temporaneamente non disponibili durante le operazioni di manutenzione.
Le 12 ore sono necessarie per consentire a Cloud Composer di avere tempo sufficiente per pianificare ed eseguire tutte le operazioni di manutenzione. Ciò non significa che le operazioni di manutenzione richiedano 12 ore complete o che vengano eseguite ogni settimana.
Puoi comunque eseguire i DAG durante i periodi di manutenzione, a condizione che sia accettabile che alcune attività possano essere interrotte e riprovate. Se esegui DAG durante i periodi di manutenzione, assicurati di attivare i tentativi di esecuzione delle attività. Puoi configurare i tentativi di ripetizione delle attività a livello di configurazione di Airflow, DAG o attività.
Le operazioni di manutenzione hanno i seguenti effetti sul tuo ambiente:
La UI di Airflow potrebbe non essere temporaneamente disponibile.
La modifica di alcuni parametri dell'ambiente o l'upgrade a una versione successiva potrebbe non essere possibile temporaneamente.
Le query SQL dirette al database Airflow potrebbero richiedere più tempo del solito e potrebbero richiedere nuovi tentativi.
Alcune attività Airflow possono essere interrotte. Al termine dell'operazione di manutenzione, Airflow riprova a eseguire queste attività (se non configurato diversamente).
Periodi di manutenzione predefiniti
Per impostazione predefinita, gli ambienti Cloud Composer 1 non hanno finestre di manutenzione definite se li crei utilizzando la console Google Cloud , l'API o Terraform. Ti consigliamo di specificare i periodi di manutenzione per gli ambienti nuovi ed esistenti.
Se crei l'ambiente utilizzando gcloud CLI, l'ambiente ha periodi di manutenzione predefiniti dalle 00:00:00 alle 04:00:00 (GMT) di venerdì, sabato e domenica di ogni settimana.
Manutenzione al di fuori dei periodi di manutenzione
Cloud Composer potrebbe eseguire la manutenzione al di fuori dei periodi di manutenzione configurati nei seguenti casi:
In situazioni di emergenza, ad esempio quando si corregge una vulnerabilità di sicurezza critica, alcune operazioni di manutenzione potrebbero essere eseguite al di fuori dei normali periodi di manutenzione.
Se Cloud Composer non è riuscito a eseguire le operazioni di manutenzione regolari durante i periodi di manutenzione per 30 giorni, esegue le operazioni di manutenzione critiche al di fuori dei periodi di manutenzione specificati. Si tratta di un meccanismo di riserva per i casi in cui i periodi di manutenzione sono configurati in modo errato e Cloud Composer non riesce ripetutamente a eseguire la manutenzione di un ambiente.
Come utilizzare i periodi di manutenzione
Le operazioni di manutenzione potrebbero influire sull'esecuzione dei DAG e delle attività Airflow, pertanto ti consigliamo di procedere come segue:
Definisci i periodi di manutenzione per gli ambienti Cloud Composer.
Pianifica le esecuzioni di DAG al di fuori dei periodi di manutenzione specificati utilizzando i parametri
start_dateeschedulenei tuoi DAG.
Specifica dei periodi di manutenzione per i nuovi ambienti
Puoi specificare i periodi di manutenzione quando crei un ambiente. Per saperne di più, consulta Creare ambienti.
Specifica dei periodi di manutenzione per gli ambienti esistenti
Console
Per definire o modificare i periodi di manutenzione per un ambiente esistente, aggiorna l'ambiente:
Nella console Google Cloud , vai alla pagina Ambienti.
Seleziona il tuo ambiente.
Vai alla scheda Configurazione ambiente.
Accanto alla voce Finestre di manutenzione, fai clic su Modifica.
Nella finestra di dialogo Periodi di manutenzione, seleziona la casella di controllo Imposta un orario personalizzato per i periodi di manutenzione.
Imposta Ora di inizio, Fuso orario, Giorni e Durata, in modo che il tempo combinato per la pianificazione specificata sia di almeno 12 ore in una finestra mobile di 7 giorni. Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce la quantità di tempo richiesta.
Fai clic su Salva e attendi l'aggiornamento dell'ambiente.
gcloud
Quando aggiorni un ambiente, i seguenti argomenti definiscono i parametri delle finestre di manutenzione:
--maintenance-window-startimposta l'ora di inizio di un periodo di manutenzione.--maintenance-window-endimposta l'ora di fine di un periodo di manutenzione.--maintenance-window-recurrenceimposta la ricorrenza del periodo di manutenzione.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input di data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera.Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.
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
Crea una richiesta API
environments.patch.In questa richiesta:
Nel parametro
updateMask, specifica la mascheraconfig.maintenanceWindow.Nel corpo della richiesta, specifica i parametri per i periodi di manutenzione.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Sostituisci:
DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input di data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:- Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera. - Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
- Il formato
Il seguente esempio specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.
// 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
Il blocco maintenance_window specifica i periodi di manutenzione per il tuo
ambiente:
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"
}
}
}
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.DATETIME_STARTcon la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata.DATETIME_ENDcon la data e l'ora di fine nel formato di input di data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCEcon una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:- Il formato
FREQ=DAILYspecifica una ricorrenza giornaliera. - Il formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAspecifica una ricorrenza nei giorni della settimana selezionati.
- Il formato
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.
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"
}
}
}