【发布时间】:2023-03-27 14:57:01
【问题描述】:
gcloud beta run deploy 以前可以运行,但现在出现错误:
$ 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 services enable sql-component.googleapis.com --project XXX
去掉--add-cloudsql-instances参数,服务器部署成功。
这有效:gcloud sql connect $PROJECTDB --user=root --quiet # 注意:($PROJECTDB) 与上面的 --add-cloudsql-instances 参数相同
【问题讨论】:
-
1) 您是否尝试从另一个项目添加 SQL Server 实例?如果是,您用于 Cloud Run 的服务帐号是否有权访问其他项目中的该 SQL 实例?默认情况下,Cloud Run 使用 Compute Engine 默认服务帐号。 2) 尝试手动启用该服务,因为 Cloud Run
gcloud services enable sql-component.googleapis.com --project XXX可能需要很长时间。 4) $PROJECT-db 的值是多少。它应该看起来像$PROJECT:$REGION:$GCP_SQL_NAME。示例:development-123456:us-central1:mysqldb -
1) 不,这是同一个项目 2) 哦,对了!该命令没有返回错误。但是 gcloud beta run deploy 仍然失败,并出现与以前相同的错误。 4)好的,我只有数据库的名称,将其更改为实例名称不起作用。
-
用新的细节更新您的问题。您有服务帐户问题或 SQL 实例名称问题。尝试删除 --add-cloudsql-instances 命令行选项以确保您可以部署并且您的服务在 $PORT 上响应。一旦您知道这可行,请调试 Cloud SQL 问题。
-
谢谢,已更新。因此,如果我省略 --add-cloudsql-instances,则部署步骤有效。您认为这是服务帐户问题吗?文档说如果未指定,云运行将使用默认服务帐户,并且该帐户已经具有编辑权限...
-
Cloud SQL 是否与 Cloud Run 位于同一区域?
标签: google-cloud-sql google-cloud-run