Gcloud Beta运行部署在成功上传图像后将失败,无法启用API



gcloud beta beta运行用于工作的beta运行,但现在我遇到了一个错误:

$ gcloud beta run deploy $PROJECT --image $IMAGE_NAME --platform=managed --region us-central1 --project $PROJECT --add-cloudsql-instances $PROJECT-db
...
DONE
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION  SOURCE                                                                                 IMAGES                                    STATUS
abcdefj-higj-lmnopquer-uvw-xyz  2019-06-29T13:59:07+00:00  1M4S      gs://$PROJECT_cloudbuild/source/XYZ123.96-aae829d50a2e43a29dce44d1f93bafbc.tgz  gcr.io/$PROJECT/$PROJECT (+1 more)  SUCCESS
API [sql-component.googleapis.com] not enabled on project 
[$PROJECT]. Would you like to enable and retry (this will take a 
few minutes)? (y/N)?  y
Enabling service [sql-component.googleapis.com] on project [$PROJECT]...
ERROR: (gcloud.beta.run.deploy) INVALID_ARGUMENT: Invalid operation name operations/noop.DONE_OPERATION, refers to an already DONE operation

我已经检查了控制台的API,启用了Cloud SQL Admin和Cloud SQL API。我还尝试过禁用它们并再次运行部署命令,但无济于事。

更多信息:

  1. SQL Server实例是同一项目的一部分。将-add-cloudsql-Instances参数更改为连接名称($ project:$ region:$ sqlname(没有效果

  2. 手动启用服务器没有效果:gcloud服务启用sql-component.googleapis.com -project xxx

  3. 删除-add-cloudsql-Instances参数,服务器成功部署。

  4. 这项工作:gcloud sql connect $ projectdb -user = root -quiet#注意:($ projectdb(与上述

  5. 的 - add-cloudsql相同的参数

使用云SQL实例部署部署云运行服务时,Gcloud V253.0.0中似乎有一个错误(需要Gmail登录(。

一旦降级到gcloud v251.0.0,我就摆脱了" api [sql-component.googleapis.com]未启用"错误消息,并能够再次使用云SQL Instances部署云运行服务。

$ gcloud components update --version 251.0.0

更新,2019年7月17日:云SDK 254.0.0中的问题已解决。如果您现在升级到最新版本,则使用云SQL实例部署云运行服务应该有效:

$ gcloud components update

对于此问题,有两个问题:

  1. 启用API服务。我建议在运行云运行部署之前启用服务,因为这可能比Cloud Run可能允许的时间更长。首先运行此命令:gcloud services enable sql-component.googleapis.com
  2. 云SQL连接名称不正确。指定正确的名称有帮助。

云SQL连接名称的格式是:$ project:$ region:$ gcp_sql_name。

示例:development-123456:us-central1:mysqldb

此命令将返回有关云SQL实例的信息,包括连接名称:

gcloud sql instances describe <instance_name>

注意。云运行有多个指定云SQL实例的命令。

--add-cloudsql-instances-此选项附加指定的连接名称。

--set-cloudsql-instances-此选项替换当前的云SQL连接名称。

如果您不将新版本部署到云运行中,则无需在值持续时使用--add-cloudsql-instances选项。我更喜欢使用--set-cloudsql-instances选项清楚地指定云SQL实例。

云运行支持多个云SQL实例。您可以添加多个连接名称。

最新更新