将 .NET Core 应用程序从 Google App Engine 迁移到 Google Cloud 运行 - SQL 连接问题

Migrate .NET Core app from Google App Engine to Google Cloud Run - SQL connection issues

我目前 运行 在 App Engine 中有一个 .NET Core API,并且一切正常。我正在按照 Google 提供的 example 连接到数据库,在 app.yaml 中定义云 sql 实例:

beta_settings:
  cloud_sql_instances: <sql connection name>

连同环境变量,如 DB_HOST: cloudsql 和其他凭据。 请注意,我正在使用自定义运行时并自己提供 dockerfile。

在尝试将我的应用程序部署到云 运行 时,我尝试以与在 app.yaml 文件中提供它们相同的方式设置环境变量,并提供云 sql 连接名称并添加它(请注意,我看不到我想要的连接名称,在 4 个现有 SQL 实例中我只能看到 2 个),我在 app.yaml。部署失败并出现错误:

Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or 
instance-specific error occurred while establishing a connection to SQL Server. The server was 
not found or was not accessible. Verify that the instance name is correct and that SQL Server 
is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal 
exception was caught)

我已经尝试关注 post,但仍然没有任何改变。其他尝试:

我该如何解决这个问题?我做错了什么?

  1. 如果您要迁移现有的 Web 应用程序,请参阅 Migrating Your Service to Cloud Run

  2. 检查您的应用是否满足所有 the criteria 云 运行。

  3. 查看了关于 connecting to a Cloud SQL instance from a service running in Cloud Run. The steps to configure Cloud Run depend on the type of IP address you assigned to your Cloud SQL instance. You can also check about connection options 的文档。

  4. 您可以关注 this example 关于 Google 云 SQL 和 MySQL 的云 运行。

  5. 检查 关于使用 Cloud 运行.

    的 dotnetcore 应用程序的正确 Cloud SQL 连接字符串语法可能会有所帮助

好吧,所以我按照 this 快速入门指南设法使它工作,关于云 运行 连接到 SQL 有许多不同的来源真的很令人困惑。添加指南中提到的环境变量解决了问题。