No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Bash Operator

12/29
Recursos

Aportes 20

Preguntas 6

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

ūüéģ Bash Operator

Ademas de lo mencionado en clase este se puede ejecutar cualquier comando de bash, por tanto podemos ejemplo bajar un fichero con wget o curl y luego retornar la data filtrado con grep o awk o en si ejecutar cualquier script de bash para ello solo hace falta que lo tengas dentro de la carpeta dags, (Lo unico es que script bash no pude ser ejecutado con source file.sh sino que debemos darle permisos de ejecución y llamarlo asi ./file.sh)

from airflow import DAG
from airflow.decorators import dag
from airflow.operators.bash import BashOperator
from datetime import datetime

with DAG(dag_id='primer_dag_bash', schedule_interval='@once', start_date=datetime(2022, 7, 1)) as dag:
    t1 = BashOperator(task_id='primer_task_bash',
                      bash_command='echo "Hola mundo"')

Les comparto el código de la clase:

from airflow import DAG
from airflow.decorators import dag
from airflow.operators.bash import BashOperator

from datetime import datetime
with DAG(
dag_id="bashoperator",
description="Utilizando BASH operator",
start_date=datetime(2022, 10, 31)
) as dag:

t1 = BashOperator(task_id="hello_with_bash",
bash_command="echo 'hello bash operator'")
t1

Hola, les comparto imagen del log

Este curso si que me ha traido felicidades!

![](https://static.platzi.com/media/user_upload/image-35c79ec3-d120-4a67-9da0-61cc90fcc641.jpg)
No he podido quitar los DAGs que vienen como ejemplo en el Airflow, desactivé la opción desde el docker\_composer.yml AIRFLOW\_\_CORE\_\_LOAD\_EXAMPLES: 'false' pero siguen saliendo. Ayuda!
\[2024-03-24, 01:18:47 UTC] {taskinstance.py:1979} INFO - Dependencies all met for dep\_context=non-requeueable deps ti=\<TaskInstance: bashoperator.hello\_with\_bash manual\_\_2024-03-24T01:18:43.924062+00:00 \[queued]> \[2024-03-24, 01:18:47 UTC] {taskinstance.py:1979} INFO - Dependencies all met for dep\_context=requeueable deps ti=\<TaskInstance: bashoperator.hello\_with\_bash manual\_\_2024-03-24T01:18:43.924062+00:00 \[queued]> \[2024-03-24, 01:18:47 UTC] {taskinstance.py:2193} INFO - Starting attempt 1 of 1 \[2024-03-24, 01:18:47 UTC] {taskinstance.py:2217} INFO - Executing \<Task(BashOperator): hello\_with\_bash> on 2024-03-24 01:18:43.924062+00:00 \[2024-03-24, 01:18:47 UTC] {standard\_task\_runner.py:60} INFO - Started process 2075 to run task \[2024-03-24, 01:18:47 UTC] {standard\_task\_runner.py:87} INFO - Running: \['\*\*\*', 'tasks', 'run', 'bashoperator', 'hello\_with\_bash', 'manual\_\_2024-03-24T01:18:43.924062+00:00', '--job-id', '3', '--raw', '--subdir', 'DAGS\_FOLDER/1-bashoperator.py', '--cfg-path', '/tmp/tmpzk\_i2e5w'] \[2024-03-24, 01:18:47 UTC] {standard\_task\_runner.py:88} INFO - Job 3: Subtask hello\_with\_bash \[2024-03-24, 01:18:47 UTC] {task\_command.py:423} INFO - Running \<TaskInstance: bashoperator.hello\_with\_bash manual\_\_2024-03-24T01:18:43.924062+00:00 \[running]> on host 233392a8204a \[2024-03-24, 01:18:47 UTC] {taskinstance.py:2513} INFO - Exporting env vars: AIRFLOW\_CTX\_DAG\_OWNER='\*\*\*' AIRFLOW\_CTX\_DAG\_ID='bashoperator' AIRFLOW\_CTX\_TASK\_ID='hello\_with\_bash' AIRFLOW\_CTX\_EXECUTION\_DATE='2024-03-24T01:18:43.924062+00:00' AIRFLOW\_CTX\_TRY\_NUMBER='1' AIRFLOW\_CTX\_DAG\_RUN\_ID='manual\_\_2024-03-24T01:18:43.924062+00:00' \[2024-03-24, 01:18:47 UTC] {subprocess.py:63} INFO - Tmp dir root location: /tmp \[2024-03-24, 01:18:47 UTC] {subprocess.py:75} INFO - Running command: \['/usr/bin/bash', '-c', "echo 'Hello gente soy gianmarco'"] \[2024-03-24, 01:18:47 UTC] {subprocess.py:86} INFO - Output: \[2024-03-24, 01:18:47 UTC] {subprocess.py:93} INFO - Hello gente soy gianmarco \[2024-03-24, 01:18:47 UTC] {subprocess.py:97} INFO - Command exited with return code 0 \[2024-03-24, 01:18:48 UTC] {taskinstance.py:1149} INFO - Marking task as SUCCESS. dag\_id=bashoperator, task\_id=hello\_with\_bash, execution\_date=20240324T011843, start\_date=20240324T011847, end\_date=20240324T011848 \[2024-03-24, 01:18:48 UTC] {local\_task\_job\_runner.py:234} INFO - Task exited with return code 0 \[2024-03-24, 01:18:48 UTC] {taskinstance.py:3312} INFO - 0 downstream tasks scheduled from follow-on schedule check

Ac√° esta:

Ha cambiado un poco la interfaz, pero no mucho

No entiendo como poner imagenes, por lo que adjunto el script creado:

from datetime import datetime
from airflow.operators.bash import BashOperator
from airflow import DAG


with DAG(dag_id="bashoperator",
    description="Utilizando bash Operator",
    start_date=datetime(2022, 11, 1)    
) as dag:
    t1= BashOperator(
        task_id="hello_with_bash",
        bash_command="echo 'Hi Platzi people from bash operator'"
    )
    t1
No estoy pudiendo correr ningun DAG, tengo la versión 2.3.3 corriendo dockerizada con este compose <https://airflow.apache.org/docs/apache-airflow/2.3.3/docker-compose.yaml> Al parecer cuando ejecuta no puede escribir los logs, por eso falla y por eso no puedo ver el error desde la consola web. ![](https://static.platzi.com/media/user_upload/image-d0db4915-35bd-413b-8079-0e37eb9dd6fa.jpg) Probe creando las carpetas dags y logs antes de correr el compose, probe dejando que las cree el airflow-init por su cuenta, mismo resultado. Fallan todos los DAGs inlcuso los de ejemplo que vienen en airflow. Probe con la version 2.9.0 y tengo los mismos problemas, salvo que as tasks no fallan inmediatamente pero no terminan nunca, pero en los logs del contenedor veo los mismos errores. Estoy corriendo ubuntu 22.04 docker 26.1.1 compose 2.27.0
![](https://static.platzi.com/media/user_upload/image-ab0d5d3f-7d13-4096-973c-789286863fd1.jpg)

muy chevere !

Como coloco mi imagen?
Ya me quedo mi DAG