gpt4 book ai didi

python - 在单独的项目中从 App Engine 连接到 GCP Cloud SQL

转载 作者:行者123 更新时间:2023-11-28 18:21:55 27 4
gpt4 key购买 nike

我正在尝试从单独的 GCP 项目中的 GCP Google App Engine 柔性环境连接到 GCP Postgres Cloud SQL 实例。我正在使用 Python。

instructions表明这需要将默认 App Engine 服务帐户添加为 Postgres Cloud SQL 项目中的 IAM 成员。

文档继续说明:

Once deployed, your application uses the Cloud SQL Proxy that is built in to the App Engine flexible environment to communicate with your Cloud SQL instance.

但是,我没有成功地从 GAE 连接到 Cloud SQL。我尝试了多种主机地址(例如 localhost<external-ip-address>/cloudsql/<INSTANCE_CONNECTION_NAME> 等),但似乎没有任何效果。

我想到了几个问题:

  • 我是否需要手动向 GAE 实例提供服务帐户 key ?

  • 连接参数或 DSN 字符串的 Cloud SQL 实例的实际主机位置是什么?文档引用 /cloudsql/<INSTANCE_CONNECTION_NAME>尽管我没有运气。

  • 我是否需要创建共享网络来链接项目?

最佳答案

我刚刚复制了您的用例场景,并成功地将一个项目的 Cloud SQL 数据库与另一个项目的 Cloud App Engine 连接起来。

重现的步骤如下:

  • 使用公共(public) IP 创建了 Cloud SQL Postgresql 数据库。

  • 为我的应用程序创建了表

  • Enable the Cloud SQL API在我想托管 App Engine 端的第二个项目中。

  • 使用此 Google Cloud Repo 在第二个项目中部署了 App Engine 应用程序

  • 按照此Using Cloud SQL for PostgreSQL guide,在项目中使用Cloud SQL 向项目的服务帐户授予App Engine 权限。

在我的复制过程中发现了您可能遇到的问题。可能您没有启用第二个项目(仅托管 App Engine 的项目)的 API。

要验证这一点,您只需通过 ssh 连接到托管应用程序引擎的机器,然后运行 ​​docker ps -a 以获取托管 cloud-sql-proxy 的 docker 容器的 ID 。然后使用该 id 运行 docker logs -f ID_OF_THE_CONTAINER ,您将看到您的 Cloud SQL 代理中是否有错误。如果您禁用了 API,只需启用它并再次部署。

关于python - 在单独的项目中从 App Engine 连接到 GCP Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com