# BashOperator
BashOperator
는 bash
커맨드를 실행하는 Operator입니다.
# Graph View
다음처럼 간단한 Task 의존성을 가지는 DAG을 작성해봅시다.
# Code
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash import BashOperator
from pendulum.tz.timezone import Timezone
with DAG(
dag_id="01_bash_operator",
description="BashOperator를 사용하는 DAG 예제입니다.",
default_args={
"owner": "heumsi",
"retries": 1,
"retry_delay": timedelta(minutes=1),
},
start_date=datetime(2022, 1, 20, tzinfo=Timezone("Asia/Seoul")),
schedule_interval="@once",
tags=["examples", "04_using_various_operators"],
) as dag:
task_1 = BashOperator(task_id="task_1", bash_command="echo Hello")
task_2 = BashOperator(
task_id="task_2", bash_command="echo $VAR", env={"VAR": "World!"}
)
task_1 >> task_2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
BashOperator
로bash
커맨드를 실행하는 Task Instance를 생성합니다.bash_command
파라미터에 실행할 셸 커맨드를 넘기면 됩니다.env
파라미터에Dict
형태로 환경변수를 주입할 수 있습니다.
# Web UI
실행 결과를 확인하면 다음과 같습니다.
Task Instance 로그를 통해 의도한대로 bash 커맨드가 잘 동작한 것을 확인할 수 있습니다.