gcloud beta 运行 成功上传图像后部署失败,无法启用 API
gcloud beta run deploy fails after sucessfully uploading image, fails to enable API
gcloud 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 服务器实例是同一项目的一部分。将 --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
参数相同
对于这个问题有两个问题:
- 启用API 服务。我建议在 运行 Cloud 运行 部署之前启用服务,因为这可能需要比 Cloud 运行 允许的时间更长的时间。 运行 先执行这条命令:
gcloud services enable sql-component.googleapis.com
- Cloud SQL 连接名称不正确。指定正确的名称会有所帮助。
Cloud SQL 连接名称的格式为:$PROJECT:$REGION:$GCP_SQL_NAME。
示例:development-123456:us-central1:mysqldb
此命令将 return 有关云 SQL 实例的信息,包括连接名称:
gcloud sql instances describe <instance_name>
注意。 Cloud 运行 有几个命令用于指定要附加的 Cloud SQL 实例。
--add-cloudsql-instances
- 此选项附加指定的连接名称。
--set-cloudsql-instances
- 此选项替换当前 Cloud SQL 连接名称。
如果您没有将新版本部署到云 运行,则没有必要使用 --add-cloudsql-instances
选项,因为该值仍然存在。我更喜欢使用 --set-cloudsql-instances
选项来明确指定云 SQL 个实例。
Cloud 运行 支持多个 Cloud SQL 实例。您可以添加多个连接名称。
在使用 Cloud SQL 实例(需要 Gmail log-in)部署 Cloud 运行 服务时,gcloud v253.0.0 中似乎有一个 bug。
降级到 gcloud v251.0.0 后,我摆脱了 "API [sql-component.googleapis.com] not enabled" 错误消息,并且能够再次使用 Cloud SQL 实例部署 Cloud 运行 服务。
$ gcloud components update --version 251.0.0
更新,2019 年 7 月 17 日:此问题已在 Cloud SDK 254.0.0 中修复。如果您现在升级到最新版本,使用 Cloud SQL 实例部署 Cloud 运行 服务应该可以:
$ gcloud components update
gcloud 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 服务器实例是同一项目的一部分。将 --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
参数相同
对于这个问题有两个问题:
- 启用API 服务。我建议在 运行 Cloud 运行 部署之前启用服务,因为这可能需要比 Cloud 运行 允许的时间更长的时间。 运行 先执行这条命令:
gcloud services enable sql-component.googleapis.com
- Cloud SQL 连接名称不正确。指定正确的名称会有所帮助。
Cloud SQL 连接名称的格式为:$PROJECT:$REGION:$GCP_SQL_NAME。
示例:development-123456:us-central1:mysqldb
此命令将 return 有关云 SQL 实例的信息,包括连接名称:
gcloud sql instances describe <instance_name>
注意。 Cloud 运行 有几个命令用于指定要附加的 Cloud SQL 实例。
--add-cloudsql-instances
- 此选项附加指定的连接名称。
--set-cloudsql-instances
- 此选项替换当前 Cloud SQL 连接名称。
如果您没有将新版本部署到云 运行,则没有必要使用 --add-cloudsql-instances
选项,因为该值仍然存在。我更喜欢使用 --set-cloudsql-instances
选项来明确指定云 SQL 个实例。
Cloud 运行 支持多个 Cloud SQL 实例。您可以添加多个连接名称。
在使用 Cloud SQL 实例(需要 Gmail log-in)部署 Cloud 运行 服务时,gcloud v253.0.0 中似乎有一个 bug。
降级到 gcloud v251.0.0 后,我摆脱了 "API [sql-component.googleapis.com] not enabled" 错误消息,并且能够再次使用 Cloud SQL 实例部署 Cloud 运行 服务。
$ gcloud components update --version 251.0.0
更新,2019 年 7 月 17 日:此问题已在 Cloud SDK 254.0.0 中修复。如果您现在升级到最新版本,使用 Cloud SQL 实例部署 Cloud 运行 服务应该可以:
$ gcloud components update