【问题标题】:Cloud Composer airflow webserver issue with KMSKMS 的 Cloud Composer 气流网络服务器问题
【发布时间】:2019-11-30 07:38:12
【问题描述】:

我正在尝试在我的一个运行 PythonOperator 的 DAG 中使用 KMS 库,但在气流网络服务器中遇到错误:

details = "Cloud Key Management Service (KMS) API has not been used in project 'TENANT_PROJECT_ID' before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview?project='TENANT_PROJECT_ID' then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."

气流网络服务器无法将我的特定 DAG 从我的宿主项目导入到租户项目(这是运行网络服务器的位置)。 DAG 运行没有问题,因为我的宿主项目设置正确,但没有机会在 UI 中监控它是一个巨大的缺点。

系统规格:

softwareConfig:
  imageVersion: composer-1.8.2-airflow-1.10.3
  pypiPackages:
    google-cloud-kms: ==1.2.1
  pythonVersion: '3'

如果能够利用 KMS 和气流 ui,那就太好了,否则我可能不得不将我的秘密添加到 Cloud Composer 环境变量中(这不是首选。)

对此有任何已知的解决方案吗?

【问题讨论】:

  • 您是否为租户项目启用了 KMS API?如果没有,您可以访问此页面console.cloud.google.com/apis/dashboard。你能发布你的代码来检查你是如何处理密钥解密的吗?
  • 我没有为租户项目启用 KMS API,我不确定如何访问租户项目以启用此功能,因为我没有直接访问此项目的权限。感谢您提供有关访问租户项目的任何提示!请注意,实际的 DAG 确实在我的工作节点上运行(因此它能够访问我的宿主项目上的 KMS,其中 composer 有它的工作节点等),并且我的 DAG 做了它应该做的事情。但是,当尝试将 dagbag 同步到运行气流网络服务器的租户项目时,它会引发错误,指出租户项目上未启用 KMS。
  • 如果您无法登录仪表板或从项目列表中缺少租户项目,则无法启用。联系项目管理员。
  • 似乎默认设置是气流网络服务器在租户项目管理 gcp 上的 appengine 上运行,没有最终用户访问权限:stackoverflow.com/questions/53762839/… - 但我会与我们的项目管理员确认。如果是这种情况,我们将不得不不使用 KMS 或自己运行网络服务器。我将在下面的评论中更新答案。感谢您的帮助!
  • 似乎我们无权访问 Cloud Composer 上的租户项目。这有点不幸,因为我们在这里没有做任何处理,而只是为 UI 同步我们的 dags(但是可能还有其他东西在后台运行)。

标签: airflow google-cloud-composer google-cloud-kms


【解决方案1】:

Airflow 网络服务器是 Cloud Composer 中的一个托管组件,因此正如其他人所说,它在您(作为环境所有者)无权访问的租户项目中运行。目前无法访问此项目。

如果您有在租户项目中启用额外 API 的有效用例,我建议您提交产品反馈。您可以通过产品的公共 documentation 了解如何执行此操作(包括如果您想向问题跟踪器提交功能请求)。

或者,如果您愿意尝试,AIP-24 是一个名为 DAG 数据库持久性的 Airflow 提案,它将 DAG 缓存在 Airflow 数据库中,而不是在网络服务器中解析/导入它们(这就是在这种情况下需要 KMS 的原因)。如果您使用的是 Composer 1.8.1+,那么您可以通过设置 core.store_serialized_dags=True 来实验性地启用该功能。请注意,它不能保证适用于所有 DAG,但在这里它可能对您有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多