smartpip调用API


smartpip支持所有Airflow的API接口,为了更方便使用可以采用smartchart的API服务功能 以下以触发调度为例

  • 在smartchart数据集中新建一个python数据源的数据集
  • 填写如下代码

    from etl.smartpip import get_auth_hearder
    import requests
    header=get_auth_hearder()
    url='{url}/api/v1/dags/{dag_id}/dagRuns'
    ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
    
  • 如果你想先获取DAG的执行状态再触发,可以增加如下判断

    from etl.smartpip import get_auth_hearder
    import requests
    header=get_auth_hearder()
    url='{url}/api/v1/dags/{dag_id}/dagRuns?limit=1&order_by=-execution_date'
    ds=requests.get(url=url,headers=header).json()
    status=ds['dag_runs'][0]['state']
    if status!='running':
      url='{url}/api/v1/dags/{dag_id}/dagRuns'
      ds=requests.post(url=url,headers=header,json={"conf":{}}).json()
    
  • 调用方法,请参考smartchart标准的API服务调用