O operador HITL

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • Nossos fluxos atuais rodam automaticamente, do início ao fim
  • Lidamos com alguns problemas (falhas, alertas, etc.) com as opções atuais
  • Não dá para “checar duas vezes” situações críticas ou detalhes importantes
  • Operadores Human-In-The-Loop permitem interação humana em fluxos em execução

Foto de uma pessoa programando no computador

Introdução ao Apache Airflow em Python

Operadores diferentes

  • HITL é uma classe de operador
  • Operadores diferentes oferecem interações diferentes
  • 4 tipos de operadores HITL
Introdução ao Apache Airflow em Python

Operadores HITL

  • HITLOperator: Classe base de todos os operadores HITL. Deixa a tarefa em estado adiado, liberando workers enquanto aguarda resposta.
  • HITLBranchOperator: Para decisão manual que define qual caminho de tarefas o Dag seguirá.
  • HITLEntryOperator: Permite fornecer entrada estruturada via TriggerForm; valida e armazena no XCom para tarefas seguintes.
  • ApprovalOperator: Operador especializado que mostra uma escolha simples: "Approve" ou "Reject".
Introdução ao Apache Airflow em Python

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Atributos:
    • subject - Assunto/título da aprovação
    • body - Conteúdo da mensagem
    • execution_timeout - timedelta de espera pela resposta
    • defaults - Valor padrão (approve ou reject) se houver timeout
    • assigned_users - Lista de usuários para notificar
Introdução ao Apache Airflow em Python

Exemplo de ApprovalOperator

approve_gate = ApprovalOperator(
        task_id="approve_data_import",
        subject="Data import - Approval Required",
        body=(
            "Please review the data produced by the *extract_info* task."
            "Approve to write data to the database, or Reject to halt the run."
        ),
    )
Introdução ao Apache Airflow em Python

ApprovalOperator na UI do Airflow

Na visão de execução do Dag, a seção RequiredActions aparece quando uma tarefa que exige aprovação está aguardando.

Tela de execução do Airflow mostrando tarefa com status Approval required

Introdução ao Apache Airflow em Python

ApprovalOperator na página inicial

Página inicial do Airflow mostrando a seção Required Actions

Introdução ao Apache Airflow em Python

Mensagem do ApprovalOperator na UI do Airflow

Mensagem de aprovação na UI do Airflow com opções Approve e Reject

Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...