Airflow Gerenciado (Geração 3) | Airflow Gerenciado (Geração 2) | Airflow Gerenciado (Geração 1 legada)
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 Airflow Gerenciado execute operações de manutenção. Por exemplo, é possível 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 Airflow Gerenciado vai realizar 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 Airflow Gerenciado vai realizar a manutenção durante as janelas de manutenção padrão.
Como as janelas de manutenção funcionam
As janelas de manutenção funcionam da seguinte maneira:
As operações de manutenção exigem pelo menos 12 horas de tempo alocado em uma única semana.
É possível usar vários intervalos de tempo, mas cada intervalo precisa ter pelo menos 4 horas de duração.
O ambiente permanece disponível durante as janelas de manutenção. Alguns componentes do ambiente podem ficar temporariamente indisponíveis quando as operações de manutenção estão em andamento.
As 12 horas são necessárias para que o Airflow Gerenciado 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 levem 12 horas completas ou que ocorram todas as semanas.
Ainda é possível executar seus DAGs durante as janelas de manutenção, desde que seja aceitável que algumas tarefas possam ser interrompidas e repetidas. Se você executar DAGs durante as janelas de manutenção, ative as repetições de tarefas. É possível configurar as repetições de tarefas na configuração do Airflow, no DAG ou no nível da tarefa.
As tarefas que levam menos de 24 horas para serem executadas geralmente não são afetadas pelas operações de manutenção, mas ainda precisam ter repetições ativadas para resistir às reinicializações do programador. O programador pode ser reiniciado durante as operações padrão do Airflow Gerenciado, fora das janelas de manutenção.
O Airflow Gerenciado informa aos workers do Airflow que uma operação de manutenção está prestes a acontecer. Um worker do Airflow conclui as tarefas já iniciadas e não escolhe novas tarefas. Essas novas tarefas são executadas por workers do Airflow que não passam por operações de manutenção.
Se você usar um ambiente altamente resiliente, os componentes do Airflow do seu ambiente provavelmente serão reiniciados em momentos diferentes durante uma operação de manutenção. Isso depende do tipo de operação de manutenção. No geral, o uso de um ambiente altamente resiliente reduz o tempo de inatividade do ambiente durante as operações de manutenção.
As operações de manutenção têm os seguintes efeitos no seu ambiente:
A interface do Airflow pode ficar temporariamente indisponível.
O Airflow Gerenciado pode realizar uma operação de upgrade automático da infraestrutura se upgrades estiverem disponíveis.
A alteração de alguns parâmetros do ambiente pode não ser possível temporariamente.
Algumas tarefas do Airflow que levam mais de 24 horas para serem executadas podem ser interrompidas. Depois que a operação de manutenção for concluída, o Airflow vai programar repetições para essas tarefas (se não estiver configurado de outra forma).
Janelas de manutenção padrão
As janelas de manutenção padrão no Airflow Gerenciado (Geração 3) são definidas da seguinte maneira:
- Todos os horários estão no fuso horário local da região em que o ambiente está localizado, mas com o horário de verão ignorado.
- Nas janelas de manutenção de terça, quarta, quinta e sexta-feira, os horários são das 00:00:00 às 02:00:00.
- Nas janelas de manutenção de sábado, domingo e segunda-feira, os horários são das 00:00:00 às 04:00:00.
Manutenção fora das janelas de manutenção
O Airflow Gerenciado pode realizar a manutenção fora das janelas de manutenção configuradas nos seguintes casos:
Em situações de emergência, por exemplo, ao corrigir uma vulnerabilidade de segurança crítica, algumas operações de manutenção podem ser realizadas fora das janelas de manutenção normais.
Se o Airflow Gerenciado não puder realizar operações de manutenção normais durante as janelas de manutenção por 30 dias, ele vai realizar operações de manutenção críticas fora das janelas de manutenção especificadas. Esse é um mecanismo de fallback para casos em que as janelas de manutenção estão mal configuradas e o Airflow Gerenciado não consegue realizar a manutenção em um ambiente repetidamente.
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 Airflow Gerenciado.
Programe a execução do DAG fora das janelas de manutenção especificadas usando
start_dateescheduleparâmetros em seus 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 Google Cloud console, 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-startdefine o horário de início de uma janela de manutenção.--maintenance-window-enddefine o horário de término de uma janela de manutenção.--maintenance-window-recurrencedefine 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_NAMEpelo nome do ambiente;DATETIME_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Airflow Gerenciado oferece suporte a dois formatos:O formato
FREQ=DAILYespecifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica 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, 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_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Airflow Gerenciado oferece suporte a dois formatos:- O formato
FREQ=DAILYespecifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica 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, 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 do 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_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;DATETIME_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Airflow Gerenciado oferece suporte a dois formatos:- O formato
FREQ=DAILYespecifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica 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, 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"
}
}
}