これは何?
- Airflowの環境構築~デプロイの備忘録です。
- Airflowを使い始めたい方の参考になれば幸いです。
環境
今回はDockerイメージを立ち上げ、vscodeから特定のスクリプトをAirflowにあげる流れを踏みます
- Ubuntu
- vscode
- python 3.9.13
- Airflow 2.4.3
※Ubuntuのインストールはされてある前提です、まだの方は以下の記事を参考にしてください(WSL2をインストールすれば、Ubuntuもあわせて落とされます)
1. WSL2のインストール
2. UbuntuにDockerをインストール
Airflow
1. Ubuntu上で準備
-
次に、Airflowにあげるコードのディレクトリまで cd していきます
- ルートディレクトリはmntからスタートする点ご注意を
- 写真は、初めに ../../ としてルートまで行ってからのものです
-
docker-compose.ymlを該当ディレクトリに用意
- 以下でダウンロードが可能
- $ curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.4.3/docker-compose.yaml'
2. Docker compose
-
$ sudo docker psで動いているコンポーネントを一覧化
- 作ったままにしているものがちらほら…(後で消す)
- 今回はCONTAINER ID:a179a7246182を使用
- $ open http://localhost:8080 で立ち上げたAirflowに飛ぶ
test.pyファイルの中身
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash import BashOperator
with DAG(
'test',
default_args={
'retries': 1,
'retry_delay': timedelta(minutes=5),
},
description='Test DAG',
start_date=datetime(2022, 11, 17),
) as dag:
t1 = BashOperator(
task_id='task1',
bash_command='date',
)
t2 = BashOperator(
task_id='task2',
bash_command='echo current time is $AAAA',
env={
"AAAA": '{{ ti.xcom_pull(task_ids="task1") }}',
},
)
t3 = BashOperator(
task_id='task3',
bash_command='sleep 20',
)
t1 >> [t2, t3]
- 開いてみると以下
学び
- ローカルからDockerイメージを立ち上げてデプロイまでの流れは掴めました
- Airflowを使うあたり、DAG, タスク, TaskInstanceなどの概念を学ぶ必要があります…
参考
- 最も参考になった記事
- Ubuntu上にコピペを貼り付けたい場合、Ctrl + Vではなく右クリックで行えます