Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, você aprenderá como definir janelas de manutenção para seus ambientes.
Sobre as janelas de manutenção
Uma janela de manutenção é um período em que você permite que o Cloud Composer realize operações de manutenção. Por exemplo, você pode garantir que as execuções de tarefas críticas não sejam interrompidas especificando janelas de manutenção fora dos horários de programação do DAG.
Com as janelas de manutenção, você tem controle sobre os períodos em que a manutenção pode ocorrer no seu ambiente:
Se você definir janelas de manutenção personalizadas para seu ambiente, o Cloud Composer vai fazer a manutenção durante esses períodos definidos.
Se você não definir janelas de manutenção personalizadas para seu ambiente ou especificar um valor vazio, o Cloud Composer vai fazer a manutenção durante as janelas de manutenção padrão.
O que acontece durante as janelas de manutenção
Ao especificar janelas de manutenção, você disponibiliza pelo menos 12 horas em uma única semana para operações de manutenção:
O ambiente permanece disponível durante as janelas de manutenção. Alguns componentes do seu ambiente podem ficar temporariamente indisponíveis quando as operações de manutenção estiverem em andamento.
As 12 horas são necessárias para que o Cloud Composer tenha tempo suficiente para programar e realizar todas as operações de manutenção. Isso não significa que as operações de manutenção levam 12 horas ou acontecem toda semana.
Ainda é possível executar DAGs durante as janelas de manutenção, desde que seja aceitável que algumas tarefas sejam interrompidas e tentadas novamente. Se você executar DAGs durante as janelas de manutenção, ative as tentativas de repetição de tarefas. É possível configurar novas tentativas de tarefas na configuração do Airflow, no DAG ou no nível da tarefa.
As operações de manutenção têm os seguintes efeitos no seu ambiente:
A interface do Airflow pode estar temporariamente indisponível.
O Cloud Composer pode realizar uma operação de upgrade automático da infraestrutura se os upgrades estiverem disponíveis.
Talvez não seja possível mudar alguns parâmetros do seu ambiente temporariamente.
Algumas tarefas do Airflow podem ser interrompidas. Depois que a operação de manutenção é concluída, o Airflow programa novas tentativas para essas tarefas (se não estiverem configuradas).
Janelas de manutenção padrão
As janelas de manutenção padrão no Cloud Composer 3 são definidas da seguinte maneira:
- Todos os horários estão no fuso horário local da região em que seu ambiente está localizado, mas sem o horário de verão.
- Nas terças, quartas, quintas e sextas-feiras, as janelas de manutenção vão de 00:00:00 a 02:00:00.
- No sábado, domingo e segunda-feira, as janelas de manutenção vão de 00:00:00 a 04:00:00.
Como usar janelas de manutenção
As operações de manutenção podem afetar a execução dos DAGs e das tarefas do Airflow. Por isso, recomendamos que você faça o seguinte:
Defina janelas de manutenção para seus ambientes do Cloud Composer.
Programe a execução do DAG fora das janelas de manutenção especificadas usando os parâmetros
start_date
eschedule_interval
nos DAGs.
Especificar janelas de manutenção para novos ambientes
É possível especificar janelas de manutenção ao criar um ambiente. Para mais informações, consulte Criar ambientes.
Especificar janelas de manutenção para ambientes atuais
Console
Para definir ou alterar janelas de manutenção de um ambiente atual, atualize o ambiente:
No console do Google Cloud, acesse a página Ambientes.
Selecione o ambiente.
Acesse a guia Configuração do ambiente.
Ao lado da entrada Janelas de manutenção, clique em Editar.
Na caixa de diálogo Janelas de manutenção, marque a caixa de seleção Definir horários personalizados para janelas de manutenção.
Defina o Horário de início, o Fuso horário, os Dias e a Duração para que o horário combinado para a programação especificada seja de pelo menos 12 horas em uma janela de 7 dias. Por exemplo, um período de quatro horas toda segunda, quarta e sexta-feira fornece o tempo necessário.
Clique em Salvar e aguarde até que o ambiente seja atualizado.
gcloud
Quando você atualiza um ambiente, os seguintes argumentos definem os parâmetros das janelas de manutenção:
--maintenance-window-start
define o horário de início de uma janela de manutenção.--maintenance-window-end
define o horário de término de uma janela de manutenção.--maintenance-window-recurrence
define a recorrência da janela de manutenção.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Substitua:
ENVIRONMENT_NAME
pelo nome do ambiente;DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e a hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:O formato
FREQ=DAILY
especifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
O exemplo a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1º de janeiro de 2023 é ignorada.
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
Crie uma solicitação de API
environments.patch
.Nesta solicitação:
No parâmetro
updateMask
, especifique a máscaraconfig.maintenanceWindow
.No corpo da solicitação, especifique os parâmetros das janelas de manutenção.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Substitua:
DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:- O formato
FREQ=DAILY
especifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
- O formato
O exemplo a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1º de janeiro de 2023 é ignorada.
// 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
O bloco maintenance_window
especifica as janelas de manutenção para seu
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"
}
}
}
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:- O formato
FREQ=DAILY
especifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
- O formato
O exemplo a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1º de janeiro de 2023 é ignorada.
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"
}
}
}