Skip to content

Instantly share code, notes, and snippets.

@msampathkumar
Forked from kaxil/airflow_json_variables.py
Created September 20, 2019 06:38
Show Gist options
  • Save msampathkumar/67bedeeeb68fd9877e0d82df2a91b3b7 to your computer and use it in GitHub Desktop.
Save msampathkumar/67bedeeeb68fd9877e0d82df2a91b3b7 to your computer and use it in GitHub Desktop.

Revisions

  1. @kaxil kaxil revised this gist Dec 25, 2018. 1 changed file with 8 additions and 1 deletion.
    9 changes: 8 additions & 1 deletion airflow_json_variables.py
    Original file line number Diff line number Diff line change
    @@ -11,4 +11,11 @@
    dag_config = Variable.get("dag1_config", deserialize_json=True)
    dag_config["var1"]
    dag_config["var2"]
    dag_config["var3"]
    dag_config["var3"]

    # You can directly use it Templated arguments {{ var.json.my_var.path }}
    bash_task = BashOperator(
    task_id="bash_task",
    bash_command='{{ var.json.dag1_config.var1 }} ',
    dag=dag,
    )
  2. @kaxil kaxil created this gist Dec 25, 2018.
    14 changes: 14 additions & 0 deletions airflow_json_variables.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    from airflow.models import Variable

    # Common (Not-so-nice way)
    # 3 DB connections when the file is parsed
    var1 = Variable.get("var1")
    var2 = Variable.get("var2")
    var3 = Variable.get("var3")

    # Recommended Way
    # Just 1 Database call
    dag_config = Variable.get("dag1_config", deserialize_json=True)
    dag_config["var1"]
    dag_config["var2"]
    dag_config["var3"]