提示和问题排查

如果在使用 Deployment Manager 时遇到问题,以下部分可能会对您有所帮助。

部署期间的常见错误

您在部署中看到的错误的格式如下:

- code: ERROR_CODE
  location: /path/to/template
  message: "{"Error message"}"

以下各部分介绍了您可能会经常看到的错误类型。

资源错误(代码:RESOURCE_ERROR

资源错误来自您通过 Deployment Manager 管理的资源的底层 API。例如,如果您的部署包含一个 Compute Engine 虚拟机实例,而在创建该实例时出现了错误,那么在 Deployment Manager 中,您看到的这个错误将是一个资源错误。

在 Deployment Manager 响应中,您可以在 message.ResourceErrorCodemessage.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_CPUMANIFEST_EXPANSION_TOO_MUCH_MEMORY 可能指示您的模板可能包含涉及递归的复杂结构,或者包含太多循环。

要解决这些错误,请考虑将模板拆分成小模板,或者简化模板。