Specifica dei periodi di manutenzione

Cloud Composer 1 | Cloud Composer 2

In questa pagina viene spiegato 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 a Cloud Composer di eseguire operazioni di manutenzione. Ad esempio, puoi assicurarti che le esecuzioni di attività critiche non vengano interrotte specificando periodi di manutenzione al di fuori dei tempi di pianificazione dei DAG.

Con i periodi di manutenzione, hai il controllo sui periodi di tempo in cui è possibile eseguire la manutenzione del tuo ambiente:

  • Se definisci periodi di manutenzione personalizzati per il tuo ambiente, Cloud Composer esegue la manutenzione durante i periodi definiti.

  • Se non definisci periodi di manutenzione per il tuo ambiente, Cloud Composer esegue la manutenzione in qualsiasi momento.

Cosa succede durante i periodi di manutenzione

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

  • Il tuo ambiente rimane disponibile durante i periodi di manutenzione. Alcuni componenti dell'ambiente potrebbero diventare temporaneamente non disponibili durante le operazioni di manutenzione.
  • 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 piene o che vengono persino eseguite ogni settimana.

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

Le operazioni di manutenzione possono avere i seguenti effetti sul tuo ambiente:

  • La modifica di alcuni parametri dell'ambiente o l'upgrade a una versione più recente potrebbe non essere temporaneamente possibile.

  • Le query SQL dirette al database Airflow potrebbero richiedere più tempo del solito e potrebbero richiedere dei nuovi tentativi.

  • La UI di Airflow potrebbe non essere temporaneamente disponibile

  • Alcune attività di Airflow possono essere interrotte. Una volta completata l'operazione di manutenzione, Airflow pianifica un nuovo tentativo per queste attività (se non configurate in altro modo).

Periodi di manutenzione predefiniti

Per impostazione predefinita, gli ambienti Cloud Composer 1 non hanno periodi di manutenzione definiti se li crei dalla console Google Cloud, dall'API o da Terraform. Ti consigliamo di specificare i periodi di manutenzione per gli ambienti nuovo ed esistente.

Se crei l'ambiente utilizzando gcloud CLI, sono previste finestre di manutenzione predefinite dalle 00:00:00 alle 04:00:00 (GMT) di venerdì, sabato e domenica di ogni settimana.

Come usare i periodi di manutenzione

Le operazioni di manutenzione potrebbero influire sull'esecuzione dei DAG e delle attività Airflow, quindi 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 i parametri start_date e schedule_interval nei DAG.

Specifica i periodi di manutenzione per i nuovi ambienti

Puoi specificare i periodi di manutenzione quando crei un ambiente. Per ulteriori 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 a 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 Periodi 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 Lunghezza, in modo che l'orario combinato per la pianificazione specificata sia di almeno 12 ore in una finestra temporale continua di 7 giorni. Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce il tempo richiesto.

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

gcloud

Quando aggiorni un ambiente, i seguenti argomenti definiscono i parametri delle finestre di manutenzione:

  • --maintenance-window-start imposta l'ora di inizio di una finestra di manutenzione.
  • --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 la data e l'ora di inizio nel formato di input di data/ora. Viene utilizzata solo l'ora del giorno specificata. La data specificata viene ignorata.
  • DATETIME_END con 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_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. 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 una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di sei ore tra l'01:00 e le 07:00 (UTC) il mercoledì, il sabato e la 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

  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 la data e l'ora di inizio nel formato di input di data/ora. Viene utilizzata solo l'ora del giorno specificata. La data specificata viene ignorata.
  • DATETIME_END con 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_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. 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 una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di 6 ore tra l'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_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • DATETIME_START con la data e l'ora di inizio nel formato di input di data/ora. Viene utilizzata solo l'ora del giorno specificata. La data specificata viene ignorata.
  • DATETIME_END con 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_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. 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 una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di sei ore tra l'01:00 e le 07:00 (UTC) il mercoledì, il sabato e la 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"
    }
  }
}

Passaggi successivi