如果在使用 Deployment Manager 时遇到问题,以下部分可能会对您有所帮助。
部署期间的常见错误
您在部署中看到的错误的格式如下:
- code: ERROR_CODE
location: /path/to/template
message: "{"Error message"}"
以下各部分介绍了您可能会经常看到的错误类型。
资源错误(代码:RESOURCE_ERROR
)
资源错误来自您通过 Deployment Manager 管理的资源的底层 API。例如,如果您的部署包含一个 Compute Engine 虚拟机实例,而在创建该实例时出现了错误,那么在 Deployment Manager 中,您看到的这个错误将是一个资源错误。
在 Deployment Manager 响应中,您可以在 message.ResourceErrorCode
和 message.ResourceErrorMessage
字段中看到来自底层 API 的错误。
验证错误(代码:CONDITION_NOT_MET
)
如果配置中的某个字段未通过验证,比如在需要布尔值时使用了字符串值,则会出现验证错误。
依赖项循环(代码:CYCLIC_REFERENCES
)
指示您的配置存在依赖项循环。例如,如果资源 A 依赖于资源 B,B 依赖于 C,而 C 依赖于 A。
错误消息会显示处于依赖项循环中的资源。
在以下情况下,您可能会看到资源中的依赖项:
对其他资源的属性的引用。例如,如果部署的实例组管理器使用来自同一部署的实例模板,则实例组管理器将隐式依赖于该实例模板。Deployment Manager 首先创建实例模板,然后创建实例组管理器。
显式
dependsOn
属性,指示当前资源必须创建在其依赖的资源之后。
要解决该错误,请更改引用或 dependsOn
属性,以便中断循环。
展开模板时出错
模板受限于 Deployment Manager 用于将模板扩展为单个配置的时间和资源。
您可能会看到以下错误之一:
MANIFEST_EXPANSION_TOO_MUCH_CPU
:扩展配置时占用了太多的 CPU。MANIFEST_EXPANSION_TOO_MUCH_MEMORY
:扩展配置时占用太多的内存。MANIFEST_EXPANSION_TOO_MUCH_WALL_TIME
:扩展配置时花费了太多的时间。MANIFEST_EXPANSION_USER_ERROR
:您的配置或某个模板出现错误。
MANIFEST_EXPANSION_TOO_MUCH_CPU
和 MANIFEST_EXPANSION_TOO_MUCH_MEMORY
可能指示您的模板可能包含涉及递归的复杂结构,或者包含太多循环。
要解决这些错误,请考虑将模板拆分成小模板,或者简化模板。