Airflow Variable (변수)는 임의의 값 또는 설정을 Airflow 내에서 간단한 Key-Value pair로 저장하고 모든 DAG에서 사용할 수 있는 일반적인 방법입니다. 변수는 Airflow UI에서 생성, 업데이트 및 삭제할 수 있습니다. 또한 Airflow UI를 통해 JSON 파일을 업로드 하여 변수를 일괄로 생성할 수도 있습니다. Airflow UI에서 변수를 생성하고 DAG에서 사용하는 방법을 실습해 보겠습니다.
Airflow UI 에서 Admin->Variable 화면으로 이동 하십시오.

(+) 버튼을 클릭하여 변수를 생성 하십시오.

Key-Value 값을 입력하고 저장 버튼을 클릭 하십시오.

다음 화면과 같이 변수가 생성 되었습니다.

Airflow UI에 생성 한 변수를 DAG 에서 사용해 보겠습니다. Cloud9 workspace에서 다음 스크립트를 copy/paste 하여 variable_DAG.py 파일을 dags 폴더에 생성하십시오.
# The DAG object; we'll need this to instantiate a DAG
from airflow import DAG
# Operators; we need this to operate!
from airflow.operators.bash_operator import BashOperator
from airflow.utils.dates import days_ago
from airflow.models import Variable
default_args = {
"owner": "airflow",
"start_date": days_ago(1),
}
dag = DAG(
"variable_DAG",
default_args=default_args,
schedule_interval=None
)
t1 = BashOperator(
task_id="s3_airflow_dag_path",
bash_command="echo {{var.value.s3_airflow_dag_path}}",
dag=dag
)
DAG 스크립트에서 Airflow UI 변수를 사용하려면 먼저 Variable 라이브러리를 Import 해야 하고 {{var.value.«variable_key_name»}}을 참조하는 방식으로 변수의 값을 조회 할 수 있습니다.

새로 작성 된 DAG를 Airflow S3 bucket의 dags 폴더로 업로드 하십시오. Cloud9 workspace의 terminal에서 다음 AWS CLI 명령어를 실행하여 DAG 파일을 S3로 업로드 하십시오.
CLI를 실행하기 전에 <your_aws_account_id> 문구는 현재 사용하고 있는 12자리 AWS Account ID로 변경해야 합니다.
cd ~/environment/dags
ls
aws s3 sync . s3://mwaa-workshop-<your_aws_account_id>/dags/

Airflow 환경의 DAG 동기화 주기로 인해 바로 나타나지 않을 수 있으니 Airflow UI를 여러 번 reload 해 보십시오.

v1.10.12:

v2.0.2:


이와 같은 방법으로 작업의 필요한 변수를 DAG 스크립트에 하드코딩하지 않고도 Airflow UI를 통해 쉽게 변경 및 관리할 수 있습니다.