贡献者:@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。确保密钥表文件中存在此配置。