postgresql GCP应用程序上的Strapi结束日期:错误:连接ECONNREFUSED

vnjpjtjt  于 2023-03-01  发布在  PostgreSQL
关注(0)|答案(1)|浏览(135)

我试图让strapi启动和运行的GCP使用pg。
我是这么做的:

  • 逐步遵循this tutorial
  • 使用npm install而不是yarn是唯一的区别
  • 启用云SQL API(基于this answer
  • 为App Engine默认服务帐户指定"Cloud-SQL-Agent"角色
  • 将database.js的内容从环境更改为静态字符串

经过大量的实验和尝试不同的东西,我仍然得到以下错误:

2023-02-21 06:24:31 default[20230221t070653]  [2023-02-21 06:24:31.418] debug: ⛔️ Server wasn't able to start properly.
2023-02-21 06:24:31 default[20230221t070653]  [2023-02-21 06:24:31.421] error: connect ECONNREFUSED /cloudsql/myproject-123:europe-west1:postgres-strapi/.s.PGSQL.5432
2023-02-21 06:24:31 default[20230221t070653]  Error: connect ECONNREFUSED /cloudsql/myproject-123:europe-west1:postgres-strapi/.s.PGSQL.5432      at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1278:16)

这是一个app. yaml文件:

runtime: nodejs16

instance_class: F2

env_variables:
  HOST: '0.0.0.0'
  NODE_ENV: 'production'
  DATABASE_NAME: 'strapi'
  DATABASE_USER: 'postgres'
  DATABASE_PASSWORD: 'password'
  INSTANCE_CONNECTION_NAME: 'myproject-123:europe-west1:postgres-strapi'

beta_settings:
  cloud_sql_instances: 'myproject-123:europe-west1:postgres-strapi'

SQL连接中的公共IP框被选中,并且App引擎在同一个项目中-因此根据页面,它应该在默认情况下进行身份验证。
激活的API包括:

  • 计算引擎API
  • 云SQL
  • sqladmin API(生产)

还有一些没有显示任何流量。
调用以下方法时,sqladmin API显示100%的错误率:google.cloud.sql.v1beta4.SqlConnectService.GenerateEphemeralCert
我没有任何可以分配给IAM面板中的应用引擎服务帐户的"Cloud SQL admin"特定角色(如here所述)。
很可能我忽略了一些很明显的事情。任何帮助都很感激!

ni65a41a

ni65a41a1#

当与另一个服务建立连接的请求被拒绝时,会出现ECONNREFUSED错误。此问题可能有不同的原因。您可以检查以下几点:
正如我在评论部分中所建议的,看起来您已经启用了Cloud SQL API。您需要启用Cloud SQL Admin API来克服这个问题。这是您在故障排除部分中提到的同一文档中提到的常见问题。您能仔细检查一下吗?
您似乎还启用了Cloud - SQL代理角色。您可以尝试按照文档-2中的建议为App Engine默认服务帐户指定“Cloud-SQL-Client”角色。
您还需要检查您的网络配置。该问题可能与使用带有出口设置的云SQL的VPC有关。如文档-3中所述
如果您通过VPC连接器路由所有出口流量,则必须使用专用IP。
同时检查您是否使用了Node.js,Npm,Strapi的旧版本。尝试更新到最新版本并查看。
如果您仍然遇到错误,请尝试提交支持票证here,因为它需要项目检查来查找错误的原因。

相关问题