도움말 및 문제해결

다음 섹션은 Deployment Manager를 사용하는 중에 문제가 발생하는 경우에 유용할 수 있습니다.

배포 중에 발생하는 일반적인 오류

배포에 표시되는 오류 형식은 다음과 같습니다.

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

일반적으로 표시되는 오류 유형은 다음 섹션에 설명되어 있습니다.

리소스 오류(코드: RESOURCE_ERROR)

리소스 오류는 Deployment Manager로 관리하는 리소스의 기본 API에서 전파됩니다. 예를 들어 배포에 Compute Engine VM 인스턴스가 있고 인스턴스를 만드는 중에 오류가 발생하면 오류는 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는 템플릿에 재귀적으로 복잡한 구조가 있거나 루프가 너무 많이 있을 수 있음을 나타낼 수 있습니다.

이러한 오류를 해결하려면 템플릿을 더 작은 템플릿으로 분할하거나 템플릿을 단순화하는 것이 좋습니다.