首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用部署在GCP Composer上的气流稳定Rest API [气流版本2.0.0]

如何使用部署在GCP Composer上的气流稳定Rest API [气流版本2.0.0]
EN

Stack Overflow用户
提问于 2021-08-06 10:09:27
回答 2查看 1.9K关注 0票数 3

Env :我们使用运行气流达格。目的:利用apache气流稳定apis在REST外部触发dags。

我们试图通过在composer: airflow.api.auth.backend.default中设置气流覆盖配置和发出IAP请求,使用气流实验apis在外部触发dags。效果很好。我们遵循了https://cloud.google.com/composer/docs/how-to/using/triggering-with-gcf中描述的步骤。

从气流2.0.0 +开始,提出了气流实验apis,并引入了新的稳定apis。新的稳定api不支持airflow.api.auth.backend.default。因此,它是投掷:403被禁止。

我们也尝试过使用auth_backend : airflow.api.auth.backend.basic_auth,但这也不能工作,因为当我们在授权头中传递用户/密码时,我们无法传递IAP。

  1. 请共享访问新气流api的步骤,类似于在https://cloud.google.com/composer/docs/how-to/using/triggering-with-gcf中访问实验性api的步骤。
  2. 我们是否需要进行双重授权,即首先对IAP进行授权,然后再使用气流?
EN

回答 2

Stack Overflow用户

发布于 2021-12-03 16:04:29

TL‘’DR版本:

为了使气流稳定的API在GCP Composer中工作:

  1. 将"api-auth_backend“设置为"airflow.composer.api.backend.composer_auth”
  2. 确保您的服务帐户电子邮件长度是<64个符号
  3. 确保您的服务帐户具有所需的权限(编写器用户角色应该足够)

Longread:

我们现在使用了一段时间的气流,从版本1.x.x开始使用“试验性”(现在已不再推荐)API。

为了授权,我们使用从服务帐户获得的“比勒”令牌:

代码语言:javascript
复制
# Obtain an OpenID Connect (OIDC) token from metadata server or using service account.
google_open_id_connect_token = id_token.fetch_id_token(Request(), client_id)

# Fetch the Identity-Aware Proxy-protected URL, including an
# Authorization header containing "Bearer " followed by a
# Google-issued OpenID Connect token for the service account.
resp = requests.request(
    method, url,
    headers={'Authorization': 'Bearer {}'.format(
        google_open_id_connect_token)}, **kwargs)

现在我们正在迁移到气流2.x.x,并面临着完全相同的问题:403被禁止的

我们的环境细节如下:

composer-1.17.3-气流-2.1.2(谷歌云平台)

"api-auth_backend“设置为"airflow.api.auth.backend.default”。

文档声称:

在将auth_backend配置选项设置为airflow.api.auth.backend.default之后,气流web服务器接受所有API请求而不进行身份验证。

然而,这似乎不是真的。

在实验中,我们发现如果“auth”设置为"airflow.composer.api.backend.composer_auth",稳定REST (Airflow 2.X.X)开始工作。

但对此还有其他的警告:对我们来说,我们的一些服务账户确实起作用,而有些则没有。不起作用的是抛出"401未经授权“错误。我们发现,具有电子邮件长度>64个符号的帐户正在抛出错误。听了这个答案观察到的情况也是一样。

因此,在将“auth”设置为"airflow.composer.api.backend.composer_auth"并确保我们的服务帐户电子邮件长度为<64个符号之后,我们的空气流量1.x.x的旧代码开始用于身份验证。然后,我们需要进行更改(API URL和响应处理),稳定的气流(2.x.x) API开始为我们工作,就像对气流1.x.x一样。

UPD:这是气流的缺陷,将在这里修复:https://github.com/apache/airflow/pull/19932

票数 2
EN

Stack Overflow用户

发布于 2021-10-08 10:55:47

云编写器对Airflow2稳定API的支持始于composer-1.17.0-preview.12。

如何处理文档就在这里:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68679852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档