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。我还尝试过禁用它们并再次运行部署命令,但无济于事。
更多信息:
SQL Server实例是同一项目的一部分。将-add-cloudsql-Instances参数更改为连接名称($ project:$ region:$ sqlname(没有效果
手动启用服务器没有效果:gcloud服务启用sql-component.googleapis.com -project xxx
删除-add-cloudsql-Instances参数,服务器成功部署。
这项工作:gcloud sql connect $ projectdb -user = root -quiet#注意:($ projectdb(与上述
的 - 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
对于此问题,有两个问题:
- 启用API服务。我建议在运行云运行部署之前启用服务,因为这可能比Cloud Run可能允许的时间更长。首先运行此命令:
gcloud services enable sql-component.googleapis.com
- 云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实例。您可以添加多个连接名称。