airflow-api 插件的安装与使用介绍

 

1. 安装插件airflow-rest-api

1)获取

wget https://github.com/teamclairvoyant/airflow-rest-api-plugin/archive/master.zip
2)将plugin文件夹下的内容放入airflow/plugin/下,若不存在则新建

3)重启airflow

2. api使用介绍

2.1 获取airflow版本

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=version

2.2 获取airflow-api-plugin的版本

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=rest_api_plugin_version

2.3 渲染任务实例模板

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=render

参数:
1)dag_id
2)task_id   任务id
3)execution_date    dag的执行日期,例如:2017-01-02T03:04:05
4)subdir(可选)    从中查找文件位置或目录

2.4 操作变量

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=variables

参数(均为可选参数):
1)set:设置变量,key value
2)get:获取变量
3)json:布尔值,反序列化json
4)default:如果变量不存在,则返回默认值
5)import:从json文件导入变量
6)export:从json文件导出变量
7)delete:删除变量

2.5 操作连接

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=connections

参数(均为可选参数):
1)list:布尔型,列出所有连接
2)add:增加连接
3)delete:布尔型,删除连接
4)conn_id:添加/删除连接所需要的连接id
5)conn_id:添加连接所需要的连接url
6)conn_extra:连接的额外字段,添加连接时可选参数

2.6 暂停DAG

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=pause

参数:
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录

2.7 继续dag

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=unpause

参数:
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录

2.8 调度任务失败的依赖

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=task_failed_deps

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选

2.9 触发dag运行

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=trigger_dag

参数:
1)dag_id
2)run_id:可选参数,用于dag运行的runid
3)conf:可选参数,传递给触发dag运行的一些配置,(URL Encoded JSON)以{"key":"value"}的形式

2.10 测试任务实例,但是不检查依赖或者在数据库中记录

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=test
参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选参数
5)dryrun:可选参数,布尔型,是否进行干运行
6)task_params:可选参数,将json字典传给task

2.11 获取dag运行状态

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=dag_state

参数:
1)dag_id
2)execution_date
3)subdir:可选参数

2.12 运行单个task实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=run

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选参数
5)mark_success:可选参数,布尔型,不运行jobs但是标记为成功
6)force:可选参数,布尔型,忽略先前的运行状态,无论任务是否成功都重新运行
7)pool:可选参数,资源池
8)cfg_path:可选参数,使用配置文件的路径而不用原有的airflow.cfg
9)local:可选参数,布尔值,使用localexecute运行任务
10)ignore_all_dependencies:可选参数,布尔值,忽略所有的非关键依赖项,包括ignore_ti_state和ignore_task_depsstore_true
11)ignore_dependencies:可选,布尔值,忽略特定于任务的依赖关系,例如upstream, depends_on_past还有retry delay dependencies
12)ignore_depends_on_past:可选,布尔值,忽略depends_on_past依赖项,但是尊重上游
13)ship_dag:可选,布尔值,序列化dag并发送给worker
14)pickle:可选:整个dag的序列化pickle对象

2.13 某个dag的所有tasks

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=list_tasks

参数:
1)dag_id
2)tree:可选参数,布尔型
3)subdir:可选参数

2.14 在制定范围内运行dag的子部分

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=backfill

参数:
1)dag_id
2)task_regex:可选参数,用于过滤特定的task_ids以进行回填正则表达式
3)start_date:覆盖start_date YYYY-MM-DD
4)end_date:可选参数,同上覆盖
5)mark_success:可选参数,布尔型,不运行jobs但是标记为成功
6)local:可选参数,布尔型,使用LocalExecutor运行任务
7)donot_pickle:可选参数,不进行尝试将dag对象发给工作人员,只告诉他们dag的运行版本
8)include_adhoc:可选参数,布尔值,包含带有adhoc参数的dags
9)ignore_dependencies:可选参数,布尔值,忽略特定于任务的依赖关系,例如 upstream, depends_on_past, and retry delay dependencies
10)ignore_first_depends_on_past:可选参数,布尔值,仅忽略第一组任务的depends_on_past依赖关系
11)subdir:可选参数,
12)pool:可选参数,资源池
13)dry_run:可选参数,布尔值,是否空运行

2.15 列出所有的dags

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=list_dags

参数: 
1)subdir:可选参数
2)report:可选参数,布尔型,显示dagbag的加载报告

2.16 启动kerberos票证续订

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=kerberos

参数(均为可选参数):
1)principal
2)keytab
3)pid:pid文件位置
4)daemon:布尔值,是否为守护进程
5)stdout:将stdout重定向到文件
6)stderr:将错误重定向到文件
7)log-file:日志文件

2.17 启动celery工作节点(worker)

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=worker

参数(均为可选参数):
1)do_pickle:布尔型,尝试picklg DAG对象发送给worker,而不是让worker运行他们的代码版本
2)queues:逗号分隔的队列列表
3)concurrency:工作进程数
4)pid:pid文件位置
5)daemon:布尔值,是否为守护进程
6)stdout:将stdout重定向到文件
7)stderr:将错误重定向到文件
8)log-file:日志文件

2.18 启动celery工作节点(flower)

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=flower

参数(均为可选参数):
1)hostname:设置运行服务器的主机名
2)port:运行服务器的端口
3)flower_conf:flower的配置文件
4)broker_api
5)pid:pid文件位置
6)daemon:布尔值,是否为守护进程
7)stdout:将stdout重定向到文件
8)stderr:将错误重定向到文件
9)log-file:日志文件

2.19 启动调度程序实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=scheduler

参数(均为可选参数):
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录
3)run-duration:设置退出前执行的秒数
4)num_runs:设置退出前执行的次数
5)do_pickle:布尔型,尝试pickle DAG对象发送给worker,而不是让worker运行他们的代码版本
6)pid:pid文件位置
7)daemon:布尔值,是否为守护进程
8)stdout:将stdout重定向到文件
9)stderr:将错误重定向到文件
10)log-file:日志文件

2.20 获取task的运行状态

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=task_state

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选

2.21 CRUD 对pool的操作

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=pool

参数:
1)set:分别设置池插槽计数和描述。 表单中的预期输入:NAME SLOT_COUNT POOL_DESCRIPTION
2)get:获取池信息
3)delete:删除池

2.22 由worker生成的日志

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=serve_logs

参数:无

2.23 清除一组任务实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=clear

参数:
1)dag_id
2)task_regex:可选参数,用于过滤特定的task_ids以进行回填正则表达式
3)start_date:覆盖start_date YYYY-MM-DD
4)end_date:可选参数,同上覆盖
5)subdir:可选参数
6)upstream:可选,布尔型,包含上游任务
7)downstream:可选,布尔型,包含下游任务
8)no_confirm:可选,布尔型,不要求确认
9)only_failed:可选,布尔型,仅失败的作业
10)only_running:可选,布尔型,仅运行的作业
11)exclude_subdags:可选,布尔型,排除子标记

2.24 发布一个新的dag

POST - http://{HOST}:{PORT}/admin/rest_api/api?api=deploy_dag

post参数:
1)dag_file:file-上传部署的py文件
2)force:可选,布尔型,文件已存在,是否强制上传
3)pause:可选,布尔型,在创建时强制暂停dag并覆盖'dags_are_paused_at_creation'配置
4)unpause(可选) - 布尔值 -  DAG在创建时将被强制取消暂停,并覆盖'dags_are_paused_at_creation'配置

2.25 刷新一个dag

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=refresh_dag

参数: 
1)dag_id

3. api响应参数:

airflow_cmd  - 字符串 - 在本地计算机上运行Airflow CLI命令
arguments  -  Dict  - 包含您传入的参数的字典及其值
post_arguments  -  Dict  - 包含您传入的帖子身体参数及其值的字典
call_time  - 时间戳 - 服务器接收请求的时间
output  -  String  - 调用CLI函数的文本输出
response_time  - 时间戳 - 服务器发回响应的时间
status  - 字符串 - 响应呼叫的状态。 (可能的值:OK,ERROR)
warning  -  String  - 从API发回的警告消息
http_response_code  - 整数 -  HTTP响应代码




1. 安装插件airflow-rest-api

1)获取

wget https://github.com/teamclairvoyant/airflow-rest-api-plugin/archive/master.zip
2)将plugin文件夹下的内容放入airflow/plugin/下,若不存在则新建

3)重启airflow

2. api使用介绍

2.1 获取airflow版本

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=version

2.2 获取airflow-api-plugin的版本

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=rest_api_plugin_version

2.3 渲染任务实例模板

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=render

参数:
1)dag_id
2)task_id   任务id
3)execution_date    dag的执行日期,例如:2017-01-02T03:04:05
4)subdir(可选)    从中查找文件位置或目录

2.4 操作变量

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=variables

参数(均为可选参数):
1)set:设置变量,key value
2)get:获取变量
3)json:布尔值,反序列化json
4)default:如果变量不存在,则返回默认值
5)import:从json文件导入变量
6)export:从json文件导出变量
7)delete:删除变量

2.5 操作连接

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=connections

参数(均为可选参数):
1)list:布尔型,列出所有连接
2)add:增加连接
3)delete:布尔型,删除连接
4)conn_id:添加/删除连接所需要的连接id
5)conn_id:添加连接所需要的连接url
6)conn_extra:连接的额外字段,添加连接时可选参数

2.6 暂停DAG

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=pause

参数:
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录

2.7 继续dag

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=unpause

参数:
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录

2.8 调度任务失败的依赖

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=task_failed_deps

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选

2.9 触发dag运行

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=trigger_dag

参数:
1)dag_id
2)run_id:可选参数,用于dag运行的runid
3)conf:可选参数,传递给触发dag运行的一些配置,(URL Encoded JSON)以{"key":"value"}的形式

2.10 测试任务实例,但是不检查依赖或者在数据库中记录

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=test

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选参数
5)dryrun:可选参数,布尔型,是否进行干运行
6)task_params:可选参数,将json字典传给task

2.11 获取dag运行状态

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=dag_state

参数:
1)dag_id
2)execution_date
3)subdir:可选参数

2.12 运行单个task实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=run

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选参数
5)mark_success:可选参数,布尔型,不运行jobs但是标记为成功
6)force:可选参数,布尔型,忽略先前的运行状态,无论任务是否成功都重新运行
7)pool:可选参数,资源池
8)cfg_path:可选参数,使用配置文件的路径而不用原有的airflow.cfg
9)local:可选参数,布尔值,使用localexecute运行任务
10)ignore_all_dependencies:可选参数,布尔值,忽略所有的非关键依赖项,包括ignore_ti_state和ignore_task_depsstore_true
11)ignore_dependencies:可选,布尔值,忽略特定于任务的依赖关系,例如upstream, depends_on_past还有retry delay dependencies
12)ignore_depends_on_past:可选,布尔值,忽略depends_on_past依赖项,但是尊重上游
13)ship_dag:可选,布尔值,序列化dag并发送给worker
14)pickle:可选:整个dag的序列化pickle对象

2.13 某个dag的所有tasks

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=list_tasks

参数:
1)dag_id
2)tree:可选参数,布尔型
3)subdir:可选参数

2.14 在制定范围内运行dag的子部分

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=backfill

参数:
1)dag_id
2)task_regex:可选参数,用于过滤特定的task_ids以进行回填正则表达式
3)start_date:覆盖start_date YYYY-MM-DD
4)end_date:可选参数,同上覆盖
5)mark_success:可选参数,布尔型,不运行jobs但是标记为成功
6)local:可选参数,布尔型,使用LocalExecutor运行任务
7)donot_pickle:可选参数,不进行尝试将dag对象发给工作人员,只告诉他们dag的运行版本
8)include_adhoc:可选参数,布尔值,包含带有adhoc参数的dags
9)ignore_dependencies:可选参数,布尔值,忽略特定于任务的依赖关系,例如 upstream, depends_on_past, and retry delay dependencies
10)ignore_first_depends_on_past:可选参数,布尔值,仅忽略第一组任务的depends_on_past依赖关系
11)subdir:可选参数,
12)pool:可选参数,资源池
13)dry_run:可选参数,布尔值,是否空运行

2.15 列出所有的dags

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=list_dags

参数: 
1)subdir:可选参数
2)report:可选参数,布尔型,显示dagbag的加载报告

2.16 启动kerberos票证续订

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=kerberos

参数(均为可选参数):
1)principal
2)keytab
3)pid:pid文件位置
4)daemon:布尔值,是否为守护进程
5)stdout:将stdout重定向到文件
6)stderr:将错误重定向到文件
7)log-file:日志文件

2.17 启动celery工作节点(worker)

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=worker

参数(均为可选参数):
1)do_pickle:布尔型,尝试picklg DAG对象发送给worker,而不是让worker运行他们的代码版本
2)queues:逗号分隔的队列列表
3)concurrency:工作进程数
4)pid:pid文件位置
5)daemon:布尔值,是否为守护进程
6)stdout:将stdout重定向到文件
7)stderr:将错误重定向到文件
8)log-file:日志文件

2.18 启动celery工作节点(flower)

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=flower

参数(均为可选参数):
1)hostname:设置运行服务器的主机名
2)port:运行服务器的端口
3)flower_conf:flower的配置文件
4)broker_api
5)pid:pid文件位置
6)daemon:布尔值,是否为守护进程
7)stdout:将stdout重定向到文件
8)stderr:将错误重定向到文件
9)log-file:日志文件

2.19 启动调度程序实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=scheduler

参数(均为可选参数):
1)dag_id
2)subdir:可选参数,从中查找dag的文件位置或者目录
3)run-duration:设置退出前执行的秒数
4)num_runs:设置退出前执行的次数
5)do_pickle:布尔型,尝试pickle DAG对象发送给worker,而不是让worker运行他们的代码版本
6)pid:pid文件位置
7)daemon:布尔值,是否为守护进程
8)stdout:将stdout重定向到文件
9)stderr:将错误重定向到文件
10)log-file:日志文件

2.20 获取task的运行状态

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=task_state

参数:
1)dag_id
2)task_id
3)execution_date
4)subdir:可选

2.21 CRUD 对pool的操作

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=pool

参数:
1)set:分别设置池插槽计数和描述。 表单中的预期输入:NAME SLOT_COUNT POOL_DESCRIPTION
2)get:获取池信息
3)delete:删除池

2.22 由worker生成的日志

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=serve_logs

参数:无

2.23 清除一组任务实例

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=clear

参数:
1)dag_id
2)task_regex:可选参数,用于过滤特定的task_ids以进行回填正则表达式
3)start_date:覆盖start_date YYYY-MM-DD
4)end_date:可选参数,同上覆盖
5)subdir:可选参数
6)upstream:可选,布尔型,包含上游任务
7)downstream:可选,布尔型,包含下游任务
8)no_confirm:可选,布尔型,不要求确认
9)only_failed:可选,布尔型,仅失败的作业
10)only_running:可选,布尔型,仅运行的作业
11)exclude_subdags:可选,布尔型,排除子标记

2.24 发布一个新的dag

POST - http://{HOST}:{PORT}/admin/rest_api/api?api=deploy_dag

post参数:
1)dag_file:file-上传部署的py文件
2)force:可选,布尔型,文件已存在,是否强制上传
3)pause:可选,布尔型,在创建时强制暂停dag并覆盖'dags_are_paused_at_creation'配置
4)unpause(可选) - 布尔值 -  DAG在创建时将被强制取消暂停,并覆盖'dags_are_paused_at_creation'配置

2.25 刷新一个dag

GET - http://{HOST}:{PORT}/admin/rest_api/api?api=refresh_dag

参数: 
1)dag_id

3. api响应参数:

airflow_cmd  - 字符串 - 在本地计算机上运行Airflow CLI命令
arguments  -  Dict  - 包含您传入的参数的字典及其值
post_arguments  -  Dict  - 包含您传入的帖子身体参数及其值的字典
call_time  - 时间戳 - 服务器接收请求的时间
output  -  String  - 调用CLI函数的文本输出
response_time  - 时间戳 - 服务器发回响应的时间
status  - 字符串 - 响应呼叫的状态。 (可能的值:OK,ERROR)
warning  -  String  - 从API发回的警告消息
http_response_code  - 整数 -  HTTP响应代码