【问题标题】:How to authorize Google App Engine in Cloud SQL (PostgreSQL)?如何在 Cloud SQL (PostgreSQL) 中授权 Google App Engine?
【发布时间】:2018-09-17 19:36:03
【问题描述】:

我正在尝试将 Google App Engine 项目授权到 Cloud SQL (PostgreSQL)。我在 Cloud SQL 实例的“授权”选项卡中找不到执行此操作的方法。它只要求我提供一个 IP 地址,但我不确定我们是否真的可以获得 App Engine 的 IP 地址。

关于如何在 Cloud SQL 中授权 App Engine 项目的任何建议?

Authorization tab for Cloudsql

【问题讨论】:

    标签: google-app-engine google-cloud-platform google-cloud-sql


    【解决方案1】:
    • 如果您在与 CloudSQL 实例相同的项目中使用 App Engine Standard,则您的应用已获得访问权限。
    • 如果您使用的是柔性环境或您的应用位于不同的项目中,那么您需要通过将 App Engine 的服务帐户添加到 CloudSQL 项目中的 IAM 来对其进行授权,并为其授予适当的权限(Cloud SQL 客户端或编辑角色)。

    您将找到详细信息here

    【讨论】:

    • 谢谢 LundinCast。我想我之前已经关注过那个文档,所以在我的例子中,app 和 cloud sql 都是同一个 GCP 项目的一部分。我想在这里强调的是,我通过连接字符串使用节点模块“pg-promise”而不是通过“Knex”连接到 cloudsql,因为我的项目已经使用 pg-promise 模块编写。这真的很重要吗?
    • 只是为了更新这个线程,所以我导航到应用引擎的实例部分并将这些 VM 实例 IP 指定到云 sql 的授权部分,我的应用似乎能够使用我的旧版本与 cloudsql 连接节点模块 pg-promise.
    【解决方案2】:

    提供 App Engine 的 IP 地址确实不是可行的方法。您只能提供引擎当前实例的 IP 地址,这些实例可以随时被具有新地址的不同实例杀死和替换。

    尝试从一开始就密切关注有关设置 App Engine 的教程。我附上了一个关于 Django 的资源的链接,因为它适用于我的案例 https://cloud.google.com/python/django/flexible-environment

    为了将您的 App Engine 连接到一个项目中的 Cloud SQL 实例,您只需调整应用程序中的配置文件。对于 Django,您的 settings.py 和 app.yaml 文件必须正确配置。确保 settings.py 中的数据库主机格式如下, ['HOST'] = '/cloudsql/{your-cloudsql-connection-string}' 并且 app.yaml 包含 “beta_settings:cloud_sql_instances:{your-cloudsql-connection-string}”。

    您可以参考示例代码here。请注意,Google Cloud platform Git 还包含其他环境的示例。

    【讨论】:

    • 欢迎来到 Stack Overflow!您能否提供您认为与您在答案中提供的链接相关的部分的摘录?如果这些页面改变了你的答案,那么它就失去了它的用处。
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2013-06-06
    • 2020-06-26
    • 2014-04-10
    相关资源
    最近更新 更多