每次尝试通过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命令行上的更新并转到控制台并单击“部署”,则更新会顺利进行。
是什么原因造成的?
答案 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
答案 3 :(得分:0)
对我来说,问题在于我正在调用更新API,以应用带有首次创建预览时传递的完整body
参数的预览。
解决方法是仅在fingerprint
参数中传递name
和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()