Deployment Manager更新错误:预览中的部署不得具有带有UPDATE

时间:2018-09-06 12:09:54

标签: google-cloud-platform google-deployment-manager

每次尝试通过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命令行上的更新并转到控制台并单击“部署”,则更新会顺利进行。

是什么原因造成的?

4 个答案:

答案 0 :(得分:1)

这是我们的问题。我们目前正在努力解决;我目前无法提供此修复程序的ETA。我强烈建议您通过控制台进行部署,继续使用您发现的解决方案。

答案 1 :(得分:1)

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

gcloud deployment-manager deployments cancel-preview DEPLOYMENT

答案 2 :(得分:1)

刚遇到这个问题,我没有正确遵循说明。在预览中创建内容后,您无需再应用配置即可。

创建预览

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

答案 3 :(得分:0)

对我来说,问题在于我正在调用更新API,以应用带有首次创建预览时传递的完整body参数的预览。

解决方法是仅在fingerprint参数中传递namebody属性以进行预览应用调用。

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()