Python 3에서 업그레이드된 앱 테스트 및 배포

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

리전 ID에 대해 자세히 알아보세요.

Python 2 및 Python 3과 호환되도록 앱을 업그레이드한 후 다음을 수행합니다.

  1. 로컬 Python 3 환경에서 앱을 테스트합니다.

  2. 트래픽을 앱으로 이동하지 않고 App Engine에서 배포 및 테스트합니다.

  3. 앱으로 트래픽을 마이그레이션합니다.

Python 3 환경에서 업그레이드된 앱을 실행하기 전에는 표시되지 않는 호환성 문제를 해결하는 데 상당한 시간이 소요될 수 있습니다.

테스트 중에 프로덕션 데이터 및 Google Cloud 할당량을 사용하지 않으려면 다음 에뮬레이터를 사용합니다.

Cloud Storage 및 Memorystore 등 다른 Google Cloud 서비스는 에뮬레이터를 제공하지 않습니다.

로컬에서 테스트

배포 전에 앱 기능을 테스트하려면 Python 3 런타임에서 로컬로 실행의 안내를 따르세요.

트래픽 이동 전에 App Engine에서 테스트

업그레이드된 Python 앱으로 트래픽을 라우팅하기 전에 앱을 App Engine Python 3 런타임에 배포하여 다시 테스트합니다. 예를 들어 앱의 default 서비스를 테스트하려면 다음 안내를 따릅니다.

  1. Python 3 런타임과의 호환성을 위해 앱의 구성 파일을 업데이트했는지 확인합니다.

    트래픽을 앱으로 이동할 준비가 될 때까지 에뮬레이터로 요청을 전송하거나 데이터베이스를 테스트하는 환경 변수를 변경하지 않습니다.

  2. 새 버전을 배포하되 트래픽이 새 버전으로 자동 라우팅되지 않도록 합니다.

    gcloud app deploy --no-promote

  3. 다음 URL로 이동하여 새 버전에 액세스합니다.

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

이제 App Engine 런타임 환경에서 새 버전을 테스트할 수 있습니다. 로그를 확인하여 애플리케이션을 디버깅할 수 있습니다. 자세한 내용은 애플리케이션 로그 작성을 참조하세요.

https://PROJECT_ID.REGION_ID.r.appspot.com으로 전송되는 요청은 이전에 트래픽을 수신하도록 구성된 버전으로 라우팅됩니다.

다른 서비스의 새 버전을 테스트하려면 동일한 절차를 따르되 URL의 default를 서비스 이름으로 바꿉니다.

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

특정 서비스와 버전 타겟팅에 대한 자세한 내용은 요청 라우팅 방법을 참조하세요.

앱으로 트래픽 마이그레이션하기

새 버전으로 트래픽을 보낼 준비가 되면 다음 단계를 따르세요.

  1. app.yaml 파일의 환경 변수를 업데이트하여 사용 중인 에뮬레이터 또는 테스트 데이터 대신 프로덕션 데이터베이스 및 기타 서비스에 요청을 보냅니다.

  2. 배포 시 트래픽이 새 버전으로 자동 라우팅되지 않도록 합니다.

    gcloud app deploy --no-promote

  3. 앱이 프로덕션 데이터베이스 및 Datastore와 상호작용하고 있음을 확인하면 Google Cloud 콘솔을 사용하여 트래픽을 마이그레이션합니다.

    버전 관리하기

    업그레이드된 앱의 최신 버전을 선택하고 트래픽 마이그레이션을 클릭합니다.