App Engine 가변형 배포 문제해결

이 문서에서는 App Engine 가변형 환경에서 Cloud Endpoints 배포 문제를 해결하는 방법에 대해 설명합니다. API 요청에 대한 응답으로 오류를 받은 경우 응답 오류 문제해결에서 오류 문제해결에 대한 정보를 확인하세요.

배포 오류

이 섹션에서는 gcloud app deploy 실행 시 문제해결 방법을 설명합니다.

오류 메시지 문제 해결
할당된 시간 안에 배포가 정상 상태가 되지 않았기 때문에 롤백되었습니다. 오류라고 생각되면 readiness_check 섹션에서 app_start_timeout_sec 설정을 조정해 보세요.

app.yaml 파일에 app_start_timeout_sec의 값이 포함된 readiness_check 섹션이 있는지 확인합니다. 없으면 섹션을 추가하고 app_start_timeout_sec의 값을 기본값 300 초보다 높은 값으로 설정합니다. 자세한 내용은 준비 확인을 참조하세요.

Endpoints 및 ESP에 필요한 모든 Google Cloud 서비스가 프로젝트에 사용 설정되어 있는지 확인합니다. 자세한 내용은 필수 서비스 확인을 참조하세요.

rollout_strategy에 대한 오류 메시지

배포 전에 app.yaml을 구성하는 경우 endpoints_api_service 섹션을 추가해야 합니다. 이 섹션에 지정하는 설정은 Extensible Service Proxy(ESP)에서 서비스의 구성을 받기 위해 필요합니다. config_id 필드에 구성 ID를 지정하거나 rollout_strategy: managed 옵션을 포함해야 합니다(동시 설정 불가). 이 옵션은 배포된 최신 서비스 구성을 사용하도록 ESP를 구성합니다. 이 옵션을 지정하면 새 서비스 구성을 배포하고 최대 5분 후 ESP가 변경 사항을 감지하고 자동으로 사용하기 시작합니다. ESP에 사용할 특정 구성 ID 대신 이 옵션을 지정하는 것이 좋습니다. 예를 들면 다음과 같습니다.

endpoints_api_service:
  name: example-project-12345.appspot.com
  rollout_strategy: managed

ESP가 서비스 구성을 받는 데 필요한 정보가 endpoints_api_service 섹션에 포함되어 있지 않으면 다음 메시지 중 하나가 표시됩니다.

오류 메시지 문제 해결
rollout_strategy"managed"로 설정된 경우 config_id는 금지됨 구성 ID와 rollout_strategy: managed를 모두 지정할 수는 없습니다. 특정 구성 ID를 사용해야 할 이유가 없다면 app.yaml에서 config_id: [YOUR_CONFIG_ID]를 제거하고 gcloud app deploy를 다시 실행하세요.
rollout_strategy가 지정되지 않거나 "fixed"로 설정된 경우 config_id를 지정해야 함 이 오류 메시지는 app.yamlrollout_strategy: managed가 포함되어 있지 않거나 rollout_strategyfixed로 설정되어 있고 구성 ID가 지정되지 않은 경우에 표시됩니다. 특정 구성 ID를 사용해야 할 이유가 없다면 app.yamlendpoints_api_service 섹션에 rollout_strategy: managed를 추가하고 gcloud app deploy를 다시 실행하세요.

인스턴스에서 로그 보기

App Engine이 비정상적으로 종료되면 시스템 로그에 애플리케이션이 시작되지 않거나 올바르게 수행되지 않은 이유에 대한 정보가 제공됩니다. Endpoints 로그에서 추가 디버깅 정보를 찾을 수 있습니다.

  1. Google Cloud Console에서 SSH를 통해 가상 머신에 연결합니다. 자세한 내용은 인스턴스에 연결을 참조하세요.

  2. tail과 같은 텍스트 뷰어를 사용하세요.

     tail -f /var/log/nginx/error.log
    

다음 단계