Airflow Variables 활용하기 (+ Kubernetes 환경 변수로 추가)

1 분 소요

Airflow Variables를 이용하면 Kubernetes의 ConfigMap, Secret와 유사하게 key, value를 관리할 수 있습니다.

Airflow Variables 추가하기

Airflow webserver에 접속하면 Admin > Variables에서 쉽게 추가할 수 있기 때문에 자세한 설명은 생략하겠습니다. 아래 AWS 관련 Key 2개를 추가했습니다.

List Variable


Variables 사용하기

Airflow에서 Variables를 사용할 때는 Jinja template에 맞춰 사용하면 됩니다. Variables는 var.value에 담겨있습니다.

...
    aws_access_key_id = ''
    aws_secret_access_key = ''
...


Kubernetes 환경 변수로 추가하기

Airflow의 KubernetesPodOperator를 이용해서 실행할 때 위에서 설정한 값을 아래와 같은 방법으로 환경 변수에 추가할 수 있습니다.

from kubernetes.client import models as k8s
from airflow.providers.cncf.kubernetes.operators.kubernetes_pod import KubernetesPodOperator

...
    
    env_vars = [
    	k8s.V1EnvVar('AWS_ACCESS_KEY_ID', '',
        k8s.V1EnvVar('AWS_SECRET_ACCESS_KEY', ''
    ]
    test_task = KubernetesPodOperator(
    	task_id='test',
        name='test',
        namespace='default',
        image='...',
        cmds=[...],
        arguments[...],
        env_vars=env_vars,
        is_delete_operator_pod=True,
        get_logs=True
    )

댓글남기기