배포 오류 문제 해결

이 페이지에서는 다음 주제에 대해 설명합니다.

배포 세부정보 및 로그 검사

배포 및 개별 버전의 세부정보와 로그를 검사할 수 있습니다.

배포 상태 검사

각 배포에는 현재 상태, 오류 코드, 실패 원인에 관한 세부정보가 있습니다.

오류가 있는 경우 먼저 배포 상태를 확인합니다.

버전 상태 검사

배포가 오류 코드 REVISION_FAILED와 함께 실패하면 수정사항의 상태를 확인할 수 있습니다.

버전 상태의 출력에서 stateDetailerrorCode 필드를 확인합니다.

버전의 상태에는 배포와 동일한 정보가 포함됩니다. 또한 빌드 ID도 포함됩니다.

Cloud Build 로그 검사

버전의 상태를 확인하고 버전에서 사용하는 Cloud Build의 빌드 ID를 가져옵니다.

빌드 ID를 사용하여 Cloud Build 로그를 검사합니다. 빌드 결과 검사에 관한 자세한 내용은 빌드 결과 보기를 참고하세요.

일반적인 실수

이 섹션에서는 Infra Manager로 Terraform 구성을 배포할 때 발생할 수 있는 일반적인 오류를 설명합니다.

배포 실패

배포 상태가 FAILED이면 배포에 예상치 못한 오류가 발생한 것입니다.

배포 상태를 확인하고 stateDetailerrorCode 필드를 검사하여 자세한 내용을 확인하세요.

배포가 오류 코드 REVISION_FAILED와 함께 실패하면 버전의 상태를 검사할 수 있습니다.

구성 오류

배포 상태가 FAILED인 경우 Terraform 구성의 구성 오류로 인해 실패했을 수 있습니다.

배포 오류가 구성과 관련된 경우 tfErrorserrorLogs 필드가 배포 상태의 출력에 포함됩니다. 구성 오류의 예로는 잘못된 구성 또는 누락된 권한이 있습니다.

Terraform에서 오류를 확인합니다. 배포 상태의 출력은 다음과 같습니다.

  • tfErrors는 Terraform에서 발생한 오류의 요약입니다 (Infra Manager에 의해 이 목록의 오류가 10개로 제한됨).
  • errorLogs: 아티팩트 버킷의 Cloud Storage 객체를 가리킵니다. 이 버킷에는 줄바꿈으로 구분된 JSON 형식의 모든 tfErrors가 포함되어 있습니다.

tfError에는 errorDescription 필드에 리소스 주소와 인간이 읽을 수 있는 오류 설명이 있습니다. Google Cloud API에서 반환된 HTTP 오류 코드로 인해 리소스가 실패하면 httpResponseCode 필드도 채워집니다. 추가 API 실패 정보는 오류 필드에 기록됩니다.

구성을 가져올 권한이 없는 서비스 계정

다음과 같은 오류가 표시됩니다.

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

Infra Manager에 Cloud Storage 버킷에서 Terraform 구성을 가져올 권한이 없으므로 이 오류가 표시됩니다.

이 문제를 해결하려면 서비스 계정에 storage.objectViewer 역할을 부여합니다. 서비스 계정에 권한을 부여하는 방법에 관한 자세한 내용은 서비스 계정 구성을 참고하세요.

구성을 가져올 위치가 잘못됨

다음과 같은 오류가 표시됩니다.

  `blueprint fetch failed: invalid path`

Terraform 구성을 가져오기 위해 잘못된 위치가 지정된 경우 이 오류가 표시됩니다. Infrastructure Manager에서는 Terraform 구성을 나타내는 용어로 청사진을 사용합니다.

이 오류를 해결하려면 Terraform 구성의 위치를 확인하고 명령어에서 위치 형식이 올바른지 확인합니다.

리소스를 작동하는 데 필요한 권한이 잘못됨

오류는 일반적으로 tfErrors 아래에 있으며 배포할 수 없는 리소스의 403 응답 코드가 포함됩니다.

이 오류는 서비스 계정에 Terraform 구성에 정의된 리소스를 생성, 읽기, 업데이트 또는 삭제할 권한이 충분하지 않은 경우 표시됩니다.

이 오류를 해결하려면 서비스 계정에 IAM 권한 부여를 참고하세요.

백엔드 구성

다음과 같은 오류가 표시됩니다.

  `blueprint invalid: found backend config in file.tf`

Terraform 구성에 백엔드 블록이 있는 경우 이 오류가 표시됩니다. 인프라 관리자가 백엔드를 관리하므로 Terraform 구성에서 백엔드 블록을 정의할 수 없습니다.

이 오류를 해결하려면 구성에서 백엔드 블록을 삭제하세요.

Cloud Build 저장소 구성 검증

Infra Manager가 비공개 Git 저장소 또는 Cloud Build 자동화 워크플로를 사용하여 Git 저장소에 액세스할 수 없는 경우 Cloud Build 저장소가 올바르게 구성되었는지 확인해야 할 수 있습니다.

Cloud Build 저장소가 비공개 저장소에 대한 액세스를 제공하도록 구성되었는지 확인하려면 GitHub 저장소에 연결을 참고하세요.

Infra Manager는 Cloud Build 저장소 URL이 Terraform 구성 (--git-source-repo에서 참조됨)과 일치하고 읽기 전용 토큰을 생성할 수 있는 첫 번째 연결을 사용합니다. 저장소 연결은 선택한 Cloud Build 저장소에서 accessReadToken API를 호출하여 직접 확인됩니다.

Infra Manager 서비스 계정을 사용하여 다음 명령어를 실행하여 권한이 올바른지 확인합니다.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

다음 단계