배포 오류 해결

App Engine Admin API를 사용하여 앱을 배포할 때 문제가 발생하는 경우 이 페이지에는 표시될 수 있는 오류 메시지가 표시되며, 각 오류를 해결하는 방법을 제공합니다.

호출자에게 프로젝트에 액세스할 수 있는 권한이 없음

앱을 배포할 때 다음 오류가 발생합니다.

User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission

이 오류는 앱을 배포하는 데 사용한 계정에 현재 프로젝트에 앱을 배포할 권한이 없는 경우에 발생합니다.

이 문제를 해결하려면 계정에 App Engine 배포자(roles/appengine.deployer) 역할부여합니다. 배포에 사용한 계정을 확인하려면 다음 중 하나를 수행합니다.

  • gcloud 명령줄 도구를 사용하여 배포한 경우 gcloud auth list 명령어를 실행합니다.
  • IDE에서 배포한 경우 Cloud 도구 플러그인의 설정을 봅니다.

GCR에서 메타데이터를 가져올 수 없음

앱을 배포할 때 다음 오류가 발생합니다.

Failed to fetch metadata from GCR, with reason: generic::permission_denied

이 오류는 스토리지 관리자(roles/storage.admin) 역할이 없는 서비스 계정으로 gcloud app deploy 명령어를 사용하는 경우에 발생합니다.

이 문제를 해결하려면 서비스 계정에 스토리지 관리자 역할부여합니다.

  • 사용한 계정을 확인하려면 gcloud auth list 명령어를 실행합니다.
  • 경우에 따라 App Engine 배포자(roles/appengine.deployer) 역할만 할당하는 것이 왜 충분하지 않은지 알아보려면 App Engine 역할을 참조하세요.

서비스 계정에는 이미지에 대한 권한이 있어야 함

앱을 배포할 때 다음 오류가 발생합니다.

The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image IMAGE_NAME

이 오류는 기본 App Engine 서비스 계정에 스토리지 객체 뷰어(roles/storage.objectViewer) 역할이 없는 경우에 발생합니다.

이 문제를 해결하려면 서비스 계정에 스토리지 객체 뷰어 역할부여합니다.

Cloud Build를 만들 수 없음

앱을 배포할 때 다음 오류가 발생합니다.

Failed to create cloud build: Permission denied

이 오류는 Cloud Build 편집자(roles/cloudbuild.builds.editor) 역할이 없는 계정으로 gcloud app deploy 명령어를 사용하는 경우에 발생합니다.

이 문제를 해결하려면 앱을 배포하는 데 사용하는 서비스 계정에 Cloud Build 편집자 역할부여합니다.

사용한 계정을 확인하려면 gcloud auth list 명령어를 실행합니다.

애플리케이션을 가져오는 중에 발생한 권한 오류

앱을 배포할 때 다음 오류가 발생합니다.

Permissions error fetching application apps/app_name. Please make sure you are using the correct project ID and that you have permission to view applications on the project

이 오류는 앱을 배포하는 데 사용한 계정에 App Engine 배포자(roles/appengine.deployer) 역할이 없는 경우에 발생합니다.

이 문제를 해결하려면 앱을 배포하는 데 사용한 서비스 계정에 App Engine 배포자 역할을 부여했는지 확인합니다. 서비스 계정에 이 역할이 없다면 이 역할을 부여하세요. 배포에 사용한 계정을 확인하려면 다음 중 하나를 수행합니다.

  • gcloud 명령줄 도구를 사용하여 배포한 경우 gcloud auth list 명령어를 실행합니다.
  • IDE에서 배포한 경우 Cloud 도구 플러그인의 설정을 봅니다.

앱 인프라가 정상이 될 때까지 기다리는 동안 타임아웃됨

앱을 배포할 때 다음 오류가 발생합니다.

Timed out waiting for the app infrastructure to become healthy

권한 누락, 코드 오류, CPU 또는 메모리 부족, 상태 확인 실패 등 다양한 요인으로 인해 이 오류가 발생할 수 있습니다. 이 오류는 App Engine 가변형 환경에서만 발생합니다.

이 문제를 해결하려면 다음과 같은 가능한 원인을 배제하세요.

  1. 기본 App Engine 서비스 계정에 편집자 roles/editor 역할을 부여했는지 확인합니다.

  2. 프로젝트의 조직 정책이 외부 IP 주소에 대한 액세스를 제한하는지 확인합니다. 자세한 내용은 App Engine 가변형 환경의 알려진 문제를 참조하세요.

  3. 애플리케이션을 실행하는 데 사용하는 서비스 계정(일반적으로 기본 서비스 계정, app-id@appspot.gserviceaccount.com)에 다음 역할을 부여했는지 확인합니다.

  4. 서비스 계정에 역할이 없는 경우 역할을 부여합니다.

  5. 공유 VPC 설정에서 배포하고 app.yaml에서 instance_tag을 전달하는 경우 이 섹션을 참조하여 문제를 해결하세요.

서버리스 VPC 커넥터로 서비스를 배포할 때 발생한 권한 오류

앱을 배포할 때 다음 오류가 발생합니다.

Please ensure you have [compute.globalOperations.get] on the service project

이 오류는 서버리스 VPC 커넥터로 앱을 배포하려는 사용자 또는 서비스 계정에 필요한 권한이 없는 경우 발생합니다.

이 문제를 해결하려면 배포를 수행하는 사용자 또는 서비스 계정에 서버리스 VPC 액세스 사용자Compute 뷰어 IAM 역할이 있는지 확인합니다.

공유 VPC 설정에서 배포할 때 잘못된 값 오류

다음 오류는 앱을 배포할 때 Flex VM 인스턴스의 Cloud Logging에 표시됩니다.

Invalid value for field 'resource.tags.items[1]': 'aef-instance'. Duplicate
tags are not allowed: aef-instance on compute.instances.insert

이 오류는 인스턴스를 생성 시 instance_tag를 설정할 때 발생하는 현재 알려진 문제로 인해 발생합니다.

이 문제를 해결하려면 app.yaml에서 instance_tag 필드를 삭제하고 다시 배포합니다.

'compute.firewalls.list' 권한 필요

공유 VPC 네트워크에 앱을 배포하면 다음과 같은 오류가 발생합니다.

Request to https://compute.googleapis.com/compute/v1/projects/projects/PROJECT_ID/global/firewalls?key failed, details: Required 'compute.firewalls.list' permission for 'projects/PROJECT_ID'

이 오류는 호스트 프로젝트의 다음 서비스 계정에 Compute 네트워크 사용자(roles/compute.networkUser) 역할이 없을 때 발생합니다.

이 문제를 해결하려면 호스트 프로젝트의 Google API 서비스 에이전트 및 App Engine 가변형 환경 서비스 에이전트 서비스 계정에 Compute 네트워크 사용자 역할을 부여했는지 확인하고 서비스 계정에 역할이 없다면 부여합니다.