Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

MEU DAG NÃO RODA

Oiee! Eu acompanhei e codei ao mesmo tempo seguindo a mesma linha de raciocínio, porém, ao abrri o airflow, meu DAG não aparece. Isso porque percebi uma coisa, que não estou sabendo resolver:


from airflow import DAG
from airflow.models import DAG
from airflow.utils.dates import days_ago
from airflow.operators.empty import EmptyOperator
from airflow.operators.bash_operator import BashOperator

with DAG(
            'meu_primeiro_dag',
            start_date=days_ago(1),
            schedule_interval='@daily'
)as dag:

        tarefa_1 = EmptyOperator(task_id = 'tarefa_1')
        tarefa_2 = EmptyOperator(task_id = 'tarefa_2')
        tarefa_3 = EmptyOperator(task_id = 'tarefa_3')
        tarefa_4 = BashOperator(
            task_id = 'cria pasta',
            bash_command = 'mkdir -p "/home/igorrodrigues/Documentos/airflowalura/pasta" '
        )

        tarefa_1 >> [tarefa_2, tarefa_3]
        tarefa_3 >> [tarefa_4]

Ao fazer isso, ele me monstra dois erros:

home/igorrodrigues/Documentos/airflowalura/DAGS/meu_primeiro_dag.py:5 DeprecationWarning: This module is deprecated. Please use airflow.operators.bash.

/home/igorrodrigues/Documentos/airflowalura/DAGS/meu_primeiro_dag.py:11 DeprecationWarning: Function days_ago is deprecated and will be removed in Airflow 3.0. You can achieve equivalent behavior with pendulum.today('UTC').add(days=-N, ...)

Como podem ver na foto:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu sei que tem essa nova função de Pendulum, mas mesmo eu exportando, não sei como chamar ela mais a baixo no lugar do Days_ago. Além de não saber também como resolver essa outra sobre o bash. Podem me ajudar?

Abraços!

1 resposta
solução!

Pessoal, eu tentei refatorar o código (até acertei um erro de sintaxe em task) mas nada ainda, sigo preso sem conseguir fazer o DAG rodar. Podem me ajudar? Ele diz agora que: "The key 'cria pasta' has to be made of alphanumeric characters, dashes, dots and underscores exclusively"

from airflow import DAG
from airflow.models import DAG
from airflow.utils.timezone import pendulum
from airflow.operators.empty import EmptyOperator
from airflow.operators.bash import BashOperator

local_tz = pendulum.timezone("America/Sao_Paulo")

with DAG(
            'meu_primeiro_dag',
            start_date=pendulum.today('UTC').add(days=-1).replace(tzinfo=local_tz),
            schedule_interval='@daily'
) as dag:

        tarefa_1 = EmptyOperator(task_id = 'tarefa_1')
        tarefa_2 = EmptyOperator(task_id = 'tarefa_2')
        tarefa_3 = EmptyOperator(task_id = 'tarefa_3')
        tarefa_4 = BashOperator(
            task_id = 'criapasta',
            bash_command = 'mkdir -p "/home/igorrodrigues/Documentos/airflowalura/pasta" '
        )

        tarefa_1 >> [tarefa_2, tarefa_3]
        tarefa_3 >> [tarefa_4]

BRIGADUUU!