实验性 Rest API

译者:@ImPerat0R_

Airflow公开了一个实验性的Rest API。它可以通过Web服务器获得来请求。 API端点以/api/experimental/开头,同时请注意,我们也希望端点定义发生变化。

端点

这是占位符,直到swagger定义处于活动状态

  • /api/experimental/dags//tasks/ 返回任务信息(GET)。
  • /api/experimental/dags//dag_runs 为给定的dag id创建一个dag_run(POST)。

CLI

对于某些功能,cli可以使用API​​。 要配置CLI选项使得在可用时能够使用API​​,请按如下方式配置:

  1. [cli]
  2. api_client = airflow.api.client.json_client
  3. endpoint_url = http://<WEBSERVER>:<PORT>

认证

API的身份验证与Web身份验证分开处理。 默认情况下,不需要对API进行任何身份验证 - 即默认情况下全开。 如果您的Airflow网络服务器可公开访问,那么不建议这样做,您应该使用拒绝所有后端请求:

  1. [api]
  2. auth_backend = airflow.api.auth.backend.deny_all

API目前支持两种“真实”的身份验证方法。

要启用密码身份验证,请在配置中进行以下设置:

  1. [api]
  2. auth_backend = airflow.contrib.auth.backends.password_auth

它的用法类似于用于Web界面的密码验证。

要启用Kerberos身份验证,请在配置中设置以下内容:

  1. [api]
  2. auth_backend = airflow.api.auth.backend.kerberos_auth
  3. [kerberos]
  4. keytab = <KEYTAB>

Kerberos服务配置为airflow/fully.qualified.domainname@REALM。确保密钥表文件中存在此配置。