6

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

$ 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

4 回答 4

10

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

创建预览

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

于 2019-07-17T15:18:47.767 回答
4

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

gcloud deployment-manager deployments cancel-preview DEPLOYMENT
于 2018-12-14T16:33:34.850 回答
1

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

于 2018-09-06T15:54:30.570 回答
0

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

修复方法是只为 preview-apply 调用传递参数中的fingerprintandname属性。body

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()
于 2019-04-09T14:05:10.107 回答