气流添加谷歌云连接

Posted

技术标签:

【中文标题】气流添加谷歌云连接【英文标题】:Airflow Add Google Cloud Connection 【发布时间】:2021-12-11 05:52:32 【问题描述】:

我在这里找到文档: https://airflow.apache.org/docs/apache-airflow-providers-google/stable/connections/gcp.html 像泥一样清晰,非常感谢您的澄清。

我只是想从我的气流中创建到我的 gcp 项目的连接(本地用完 docker)。我有一个从合适的服务帐户生成的密钥文件,但不知道应该放在哪里。

“密钥文件路径”相对于什么?是来自气流网络服务器还是调度程序?文档还建议“密钥文件 JSON”获取密钥文件的内容,但无论我尝试什么,当我尝试测试连接时仍然会收到“错误请求”。

我将项目 ID 放在适当的字段中 - 屏幕截图没有显示。

谁能解释一下?

【问题讨论】:

【参考方案1】:

看起来 Keyfile JSON 应该是您的 Service_account .json 文件的内容。通常形式为:

"private_key": "r4nd0m_k3y"

Keyfile PATH 应该始终是绝对的 - 您只需确保它可用于“工作人员”(或“调度程序”,如果是本地执行程序 - 基本上是用于执行任务的实体)。在 Airflow 2.2 中,还有一个功能可以“测试”来自 UI 的连接 - 如果您想使用它,您必须在此路径下为 Webserver 提供它。

您的bad request 可能出于不同的原因顺便说一句。 - 例如,您可能必须指定scopes - 但您需要对其进行调试并确保您拥有正确的所有配置。如果不确定,您可以通过绝对路径提供密钥来测试它。

最后 - 当你让它工作时提出请求,如果你改进文档并添加这些工作示例和解释以使其更清晰,我将不胜感激。超级简单 - 转到文档页面,有“建议更改此页面”按钮,它将直接打开 PR,您将能够使用 GitHub UI 更新文档。非常简单、直接和很好的方式,不仅要感谢那些免费提供该软件的人 - 而且您还可以成为 Airflow 的 1700 多名贡献者之一,并为遇到同样问题的其他人“扫清道路”。

【讨论】:

谢谢!我已经尝试将密钥放在每个节点上共享卷的绝对路径中,仍然没有好处。我尝试将关键内容粘贴到 keyfile json 字段(被混淆)仍然没有好处。我尝试提供基本范围......仍然没有。当我保存连接时,这些字段已恢复为默认值。很奇怪。 很难说。您可以尝试通过 CLI 甚至环境变量定义连接(您可以在此处和以下章节中获得所有解释和工具:airflow.apache.org/docs/apache-airflow/stable/howto/… - 如果在保存连接后更改消失,那么您可能遇到的问题可能不是密钥。您可以始终检查气流的元数据数据库以检查连接是否正确定义或使用airflow connection CLI 进行检查。【参考方案2】:

“密钥文件路径”相对于什么?

将您下载的服务帐号 JSON 密钥文件复制到 您环境的 Cloud Storage 存储分区的 data/ 目录。那么,在 Keyfile Path,输入Airflow worker上的本地文件路径到 JSON 密钥文件的位置,例如 /home/airflow/gcs/data/keyfile.json。 Link

是来自气流网络服务器还是调度程序?

我对第二个问题不太确定,但是这个配置是在气流网络服务器中进行的。

考虑查看Managing Airflow Connections 上的完整教程。这可能对您的连接问题有用。

关于消息“错误请求”,您可以查看this document 关于 GCP 中的错误消息。

【讨论】:

以上是关于气流添加谷歌云连接的主要内容,如果未能解决你的问题,请参考以下文章

无法将气流连接到谷歌云

如何连接谷歌云平台的Mlab?

谷歌云应用引擎到 postgresql 连接被拒绝

从谷歌云中的虚拟机锁定

谷歌云平台计算引擎 SSL 证书

谷歌云点击部署hadoop