【发布时间】:2021-07-28 09:28:47
【问题描述】:
我正在使用以下 python 脚本触发 Airflow DAG: API 调用:
import requests
import json
url = "http://127.0.0.1:8080/api/v1/dags/get_external_params/dagRuns"
payload = json.dumps({
"conf": {
"ip": "198.51.100.96",
"hostname": "abc",
"domainname": "server456.com",
"username": "airflow",
"password": "XXXX"
}
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic XXXX'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
我正在尝试一次打印所有 conf 值,而不是一一打印。我在示例中所能看到的只是拥有一个键值对消息并打印它们 DAG
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
from airflow.utils.dates import days_ago
def run_this_func(**kwargs):
dag_run = kwargs.get('dag_run')
parameters = dag_run.conf['ip'] #get all parameters instead of one key
return parameters
args = {
'owner': 'airflow',
}
with DAG(
dag_id='get_external_params',
default_args=args,
schedule_interval=None,
start_date=days_ago(2),
tags=['DNS'],
) as dag:
run_this = PythonOperator(
task_id='run_this',
python_callable=run_this_func,
dag=dag,
#op_kwargs = How can I get all the ip,hostname,username,password here
provide_context=True,
)
runthis
我的意图是调用带有参数的 python 脚本 例如:somename.py -username xxxx -password xxx 但在此之前,我试图获取 Airflow 脚本中的值。 请帮忙!!!
【问题讨论】:
标签: python-3.x airflow directed-acyclic-graphs