代码之家  ›  专栏  ›  技术社区  ›  PPShein

如何允许Google App Engine访问Google云PostgreSQL

  •  3
  • PPShein  · 技术社区  · 7 年前

    我发现我的节点有问题。Google App Engine中的js,因为它无法连接到Google云PostgreSQL:

    Unhandled rejection SequelizeBaseError: connect ETIMEDOUT ***.***.***.***:5432
    at (/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:111)
    at Connection.<anonymous> (/app/node_modules/pg/lib/client.js:176)
    at emitOne (events.js:96)
    at Connection.emit (events.js:188)
    at Socket.<anonymous> (/app/node_modules/pg/lib/connection.js:59)
    at emitOne (events.js:96)
    at Socket.emit (events.js:188)
    at emitErrorNT (net.js:1281)
    at _combinedTickCallback (internal/process/next_tick.js:74)
    at process._tickCallback (next_tick.js:98)
    

    我不知道如何在下面的内容中添加IP地址(可能我错过了在Google Cloud SQL中要配置的内容)。

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  4
  •   dsesto    7 年前

    有一些非常好的文档 how to connect App Engine applications to Cloud SQL instances . 在那里,您可以找到关于如何让您的应用程序在本地开发和生产环境中访问每种受支持的编程和SQL语言的云SQL实例的详细步骤。

    假设在将应用程序部署到生产环境(即应用程序引擎环境)时发现连接问题,下面是您必须执行的主要步骤的摘要:

    1. 使用命令获取云SQL实例的全名 gcloud sql instances describe [INSTANCE_NAME] . 应为以下类型 <PROJECT_ID>:<REGION>:<INSTANCE_NAME> .
    2. 使用与应用程序引擎应用程序关联的服务帐户授予对应用程序引擎的访问权限。它应该有 云SQL客户端 云SQL编辑器 角色。
    3. 定义 环境变量 测试版设置 中的SQL实例 app.yaml 文件

    (将此代码添加到 应用程序。亚马尔 文件):

    env_variables:
      SQL_USER: <YOUR_CLOUD_SQL_USER>
      SQL_PASSWORD: <YOUR_CLOUD_SQL_PASSWORD>
      SQL_DATABASE: <YOUR_CLOUD_SQL_DATABASE>
      INSTANCE_CONNECTION_NAME: <INSTANCE_CONNECTION_NAME>   # With format as <PROJECT_ID>:<REGION>:<INSTANCE_NAME>
    
    beta_settings:
      cloud_sql_instances: <INSTANCE_CONNECTION_NAME>   # With same format
    
    1. 添加节点。使用 package.json 文件文档建议使用 Knex公司。js公司 pg公司 ,但您大概可以使用您选择的一个。

    (将此代码添加到 包裹json 文件):

    "dependencies": {
      "async": "2.5.0",
      "express": "4.15.4",
      "knex": "0.13.0",
      "pg": "7.3.0",
      "prompt": "1.0.0"
    },
    

    一旦为应用程序设置了正确的配置,就可以查看以下内容 sample Node.js code . 以便在主脚本中找到任何缺少的项。

    如果您现在部署应用程序,它应该会很有魅力。

    P、 美国:请记住,由于App Engine和Cloud SQL是Google云平台系列的两个产品,所以您的Cloud SQL实例中不需要授权外部网络,所以您也可以忽略这一部分。