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 가변형 환경에서만 발생합니다.
이 문제를 해결하려면 다음과 같은 가능한 원인을 배제하세요.
기본 App Engine 서비스 계정에 편집자
roles/editor
역할을 부여했는지 확인합니다.프로젝트의 조직 정책이 외부 IP 주소에 대한 액세스를 제한하는지 확인합니다. 자세한 내용은 App Engine 가변형 환경의 알려진 문제를 참조하세요.
애플리케이션을 실행하는 데 사용하는 서비스 계정(일반적으로 기본 서비스 계정,
app-id@appspot.gserviceaccount.com
)에 다음 역할을 부여했는지 확인합니다.서비스 계정에 역할이 없는 경우 역할을 부여합니다.
공유 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 네트워크 사용자 역할을 부여했는지 확인하고 서비스 계정에 역할이 없다면 부여합니다.