Specifica dei periodi di manutenzione

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina spiega come definire i periodi di manutenzione per i tuoi ambienti.

Informazioni sui periodi di manutenzione

Un periodo di manutenzione è un periodo di tempo in cui consenti Cloud Composer per l'esecuzione di operazioni di manutenzione. Ad esempio, assicurarti che le esecuzioni delle attività critiche non vengano interrotte specificando periodi di manutenzione al di fuori degli orari di pianificazione dei DAG.

Con i periodi di manutenzione, hai il controllo sui periodi di tempo in cui per il 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 personalizzati per il tuo ambiente, Cloud Composer esegue la manutenzione durante finestre di manutenzione.

Cosa succede durante i periodi di manutenzione

Quando specifichi periodi di manutenzione, fornisci almeno 12 ore di tempo in una settimana per le operazioni di manutenzione:

  • Il tuo ambiente rimane disponibile durante i periodi di manutenzione. Alcuni componenti potrebbe diventare temporaneamente non disponibile durante la manutenzione le operazioni sono in corso.

  • Le 12 ore sono necessarie affinché Cloud Composer abbia tempo sufficiente per pianificare ed eseguire tutte le operazioni di manutenzione. Ciò non significa che le operazioni di manutenzione richiedono 12 ore o anche ogni settimana.

Puoi comunque eseguire i DAG durante i periodi di manutenzione, purché siano accettabile che alcune attività possano essere interrotte e riprovate. Se esegui i DAG durante i periodi di manutenzione, assicurati di abilitare i nuovi tentativi delle attività. Puoi e configurare i nuovi tentativi delle attività a livello di configurazione di Airflow, DAG o attività.

Le attività che richiedono meno di 55 minuti sono in genere non sono influenzate da operazioni di manutenzione, ma devono comunque abilitati per i riavvii dello scheduler. Lo scheduler potrebbe riavviarsi durante le operazioni standard di Cloud Composer, al di fuori dei periodi di manutenzione.

Cloud Composer informa i worker di Airflow che un'operazione di manutenzione sta per accadere. Un worker Airflow termina le attività già avviate e lo fa non scegliere nuove attività. Queste nuove attività vengono eseguite dai worker Airflow che non eseguire operazioni di manutenzione.

Se utilizzi un ambiente altamente resiliente, allora è probabile che i componenti Airflow del tuo ambiente vengano riavviati tempi diversi durante un'operazione di manutenzione (questo dipende dal tipo un'operazione di manutenzione). In generale, l'utilizzo di un ambiente altamente resiliente riduce per ridurre il tempo di inattività dell'ambiente durante le operazioni di manutenzione.

Le operazioni di manutenzione hanno i seguenti effetti sull'ambiente:

  • La UI di Airflow potrebbe essere temporaneamente non disponibile.

  • Modifica di alcuni parametri dell'ambiente o upgrade a una versione successiva temporaneamente non è possibile.

  • Le query SQL dirette al database Airflow potrebbero richiedere più tempo del solito e potrebbe essere necessario riprovare.

  • Alcune attività Airflow che richiedono più di 55 minuti eseguire possono essere interrotti. Al termine dell'operazione di manutenzione, Airflow pianifica nuovi tentativi per queste attività (se non configurate altrimenti).

Periodi di manutenzione predefiniti

I periodi di manutenzione predefiniti di Cloud Composer 2 hanno inizio dalle 00:00:00 alle 04:00:00 (GMT) il venerdì, il sabato e la domenica ogni settimana.

Come utilizzare i periodi di manutenzione

Le operazioni di manutenzione potrebbero influire sull'esecuzione dei tuoi DAG e di Airflow attività, pertanto ti consigliamo di procedere come segue:

  1. Definisci i periodi di manutenzione per i tuoi ambienti Cloud Composer.

  2. Pianifica le esecuzioni dei DAG al di fuori dei periodi di manutenzione specificati utilizzando Parametri start_date e schedule_interval in dei tuoi DAG.

Specifica i periodi di manutenzione per i nuovi ambienti

Puoi specificare periodi di manutenzione quando crei un ambiente. Per maggiori informazioni per informazioni, consulta Creare ambienti.

Specifica i periodi di manutenzione per gli ambienti esistenti

Console

Per definire o modificare i periodi di manutenzione per un ambiente esistente: aggiorna l'ambiente:

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Seleziona il tuo ambiente.

  3. Vai alla scheda Configurazione dell'ambiente.

  4. Accanto alla voce Periodi di manutenzione, fai clic su Modifica.

  5. Nella finestra di dialogo Finestre di manutenzione, seleziona la Casella di controllo Imposta un orario personalizzato per i periodi di manutenzione.

  6. Imposta Ora di inizio, Fuso orario, Giorni e Durata, in modo che il tempo combinato per la programmazione specificata è di almeno 12 ore in un 7 giorni finestra temporale continua. Ad esempio, un periodo di 4 ore ogni lunedì Il mercoledì e il venerdì indica il tempo richiesto.

  7. Fai clic su Salva e attendi che l'ambiente venga aggiornato.

gcloud

Quando aggiorni un ambiente, i seguenti argomenti definiscono parametri per i periodi di manutenzione:

  • --maintenance-window-start imposta l'ora di inizio di una manutenzione finestra.
  • --maintenance-window-end imposta l'ora di fine di un periodo di manutenzione.
  • --maintenance-window-recurrence imposta 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_NAME con il nome dell'ambiente.
  • DATETIME_START con data e ora di inizio nel formato di input di data/ora. Solo il viene utilizzata l'ora del giorno specificata, la data specificata viene ignorata.
  • DATETIME_END con data e ora di fine nel formato di input di data/ora. Solo il viene utilizzata l'ora del giorno specificata, la data specificata viene ignorata. La la data e l'ora specificate devono essere successive alla data di inizio.
  • MAINTENANCE_RECURRENCE con una regola RRULE RFC 5545 per i periodi di manutenzione una ricorrenza. Cloud Composer supporta due formati:

  • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.

  • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica un ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica una periodo di manutenzione di 6 ore tra 01:00 e 07:00 (UTC) di mercoledì, sabato e domenica. 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

  1. Creare una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.maintenanceWindow.

    2. 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_START con data e ora di inizio nel formato di input di data/ora. Solo l'ora specificata giorno utilizzato, la data specificata viene ignorata.
  • DATETIME_END con data e ora di fine nel formato di input di data/ora. Solo l'ora specificata giorno utilizzato, la data specificata viene ignorata. La data specificata e l'ora deve essere successiva alla data di inizio.
  • MAINTENANCE_RECURRENCE con una regola RRULE RFC 5545 per i periodi di manutenzione una ricorrenza. Cloud Composer supporta due formati:

    • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.
    • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica un ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica una periodo di manutenzione di 6 ore tra 01:00 e 07:00 (UTC) di mercoledì, sabato e domenica. 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 questo 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_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • DATETIME_START con data e ora di inizio nel formato di input di data/ora. Solo l'ora specificata giorno utilizzato, la data specificata viene ignorata.
  • DATETIME_END con data e ora di fine nel formato di input di data/ora. Solo l'ora specificata giorno utilizzato, la data specificata viene ignorata. La data specificata e l'ora deve essere successiva alla data di inizio.
  • MAINTENANCE_RECURRENCE con una regola RRULE RFC 5545 per i periodi di manutenzione una ricorrenza. Cloud Composer supporta due formati:

    • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.
    • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica un ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica una periodo di manutenzione di 6 ore tra 01:00 e 07:00 (UTC) di mercoledì, sabato e domenica. 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"
    }
  }
}

Passaggi successivi