Deployment Manager update error: Deployment in preview must not have a target with UPDATE

Deployment Manager update error: Deployment in preview must not have a target with UPDATE

每次我尝试 运行 通过 Deployment Manager 更新到预览中的现有部署时,我都会收到错误消息:

$ gcloud deployment-manager deployments update abc --config abc.yaml
ERROR: (gcloud.deployment-manager.deployments.update) ResponseError: code=400, message=Invalid value for field 'resource.target': ''.  Deployment in preview must not have a target with UPDATE

但是,如果我不在 gcloud 命令行上使用更新并转到控制台并单击 'deploy',则更新会正常进行。

这可能是什么原因造成的?

这是我们这边的问题。我们目前正在修复;我目前无法提供修复的预计到达时间。我强烈建议继续使用您通过控制台部署找到的解决方法。

取消预览然后再次运行部署更新。

gcloud deployment-manager deployments cancel-preview DEPLOYMENT

对我来说,问题是我调用更新 API 以使用我在第一次创建预览时传递的完整 body 参数来应用预览。

解决方法是在预览应用调用的 body 参数中仅传递 fingerprintname 属性。

project_name = '...'
deployment_name = '...'

existing_deployment = service.deployments().get(
    project=project_name,
    deployment=deployment_name).execute()

service.deployments().update(
    project=project_name,
    deployment=deployment_name,
    body={
        'name': deployment_name,
        'fingerprint': existing_deployment["fingerprint"],
    },
    preview=False).execute()

刚 运行 进入这个,我没有正确地按照说明进行操作。在预览中创建内容后,您无需再次传递配置,只需应用即可。

创建预览

gcloud deployment-manager deployments update my-deployment --config my-config.yaml --preview

运行部署

gcloud deployment-manager deployments update my-deployment

文档 https://cloud.google.com/deployment-manager/docs/deployments/updating-deployments#make_the_update_request