# BashOperator

BashOperatorbash 커맨드를 실행하는 Operator입니다.

# Graph View

다음처럼 간단한 Task 의존성을 가지는 DAG을 작성해봅시다.

img.png

# 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
  • BashOperatorbash 커맨드를 실행하는 Task Instance를 생성합니다.
    • bash_command 파라미터에 실행할 셸 커맨드를 넘기면 됩니다.
    • env 파라미터에 Dict 형태로 환경변수를 주입할 수 있습니다.

# Web UI

실행 결과를 확인하면 다음과 같습니다.

img_2.png

Task Instance 로그를 통해 의도한대로 bash 커맨드가 잘 동작한 것을 확인할 수 있습니다.

img_1.png

img_3.png

Last Updated: 3/1/2022, 1:26:42 PM