커뮤니티에서 더 이상 Python 2를 더 이상 지원하지 않습니다. Python 2 앱을 Python 3로 마이그레이션하는 것이 좋습니다.

Python 3 런타임을 위한 구성 파일 준비

App Engine 표준 환경의 Python 3 런타임에서 앱을 실행하려면 App Engine에서 사용하는 구성 파일의 일부를 변경해야 할 수도 있습니다.

  • app.yaml. 이 파일에는 런타임 및 앱 핸들러와 같은 앱 코드에 대한 정보가 포함되어 있습니다.

  • appengine_config.py. Python 2 런타임은 이 파일을 사용하여 타사 라이브러리에 액세스하고 상수 및 '후크 함수'에 대한 값을 제공합니다. Python 3 런타임은 이 파일을 사용하지 않습니다.

app.yaml 업데이트

app.yaml 구성 파일의 일부 필드 동작이 수정되었습니다. 다음 표에 설명된 대로 지원 중단된 필드를 삭제하고 다른 필드를 업데이트합니다.

필드 변경 유형 설명
app_engine_apis Python 3에만 적용 가능 Python 3용 기존 번들 서비스에 액세스하려면 true로 설정해야 합니다.
api_version
application_readable
builtins
지원 중단됨 Python 3 런타임에서는 더 이상 사용되지 않습니다.
threadsafe 지원 중단됨 모든 애플리케이션이 스레드 안전으로 간주됩니다. 애플리케이션이 스레드 안전이 아닌 경우:
  1. max_concurrent_requests1로 설정합니다. 이렇게 하면 비용이 크게 증가할 수 있습니다.
  2. workers1로 설정하여 max_concurrent_requests1로 설정되었을 때의 불필요한 RAM 사용을 방지합니다.
라이브러리 지원 중단됨 requirements.txt 파일을 사용하여 종속 항목을 선언하고 클라이언트 라이브러리를 설치합니다.
handlers: login app_engine_apistrue인 경우 지원됨 Python 3용 기존 번들 서비스를 사용하지 않는 경우 사용자 관리에 Identity and Access Management(IAM)를 사용합니다.
handlers: script 수정된 대비율 Python 2 런타임에서 script 필드를 사용하여 수신 요청을 앱의 스크립트로 라우팅합니다.

Python 3 런타임에서는 script 필드를 사용하는 대신 인앱 라우팅(예: Flask 또는 Django)이 포함된 웹 프레임워크를 사용해야 합니다.

app.yaml 파일을 Python 3 런타임으로 마이그레이션하려면 파일에 정적 핸들러와 스크립트 핸들러가 있는지 여부에 따라 다음 중 하나를 수행합니다.

  • app.yaml 파일에 정적 핸들러가 포함된 경우 다음 중 하나를 수행하여 동적 콘텐츠 요청이 앱의 스크립트로 라우팅되도록 합니다.
    • 모든 script 필드를 삭제합니다. 그런 다음 entrypoint 필드를 추가하여 앱을 실행하는 웹 서버를 시작합니다. 정적 핸들러와 일치하지 않는 요청은 entrypoint 필드에 지정된 웹 서버로 전달됩니다. 웹 서버와 앱의 웹 프레임워크는 요청을 올바른 스크립트로 라우팅하는 역할을 합니다.
    • 모든 script 필드의 값을 auto로 바꿉니다. App Engine은 웹 서버에서 앱을 자동으로 실행하며 스크립트 핸들러와 일치하는 모든 요청은 웹 서버로 전달됩니다(앱이몇 가지 요구사항을 충족할 경우). 웹 서버와 앱의 웹 프레임워크는 요청을 올바른 스크립트로 라우팅하는 역할을 합니다.
    • app.yaml 파일에 정적 핸들러가 포함되어 있지 않은 경우 모든 script 필드를 삭제하세요. 앱에 대한 모든 요청은 앱의 웹 서버로 전달되며 앱의 프레임워크는 요청을 올바른 스크립트로 라우팅합니다. 필요에 따라 entrypoint 필드를 추가하여 기본 시작 동작을 맞춤설정할 수 있습니다.

정적 파일 처리는 변경되지 않습니다.

지원 중단된 필드를 사용하면 앱을 배포할 때 App Engine은 오류를 반환합니다.

appengine_config.py 삭제

App Engine 표준 환경의 Python 2 런타임은 appengine_config.py 파일을 사용합니다.

이 파일은 Python 3 런타임에서 무시됩니다. 대신 Python 3 런타임은 네이티브 코드를 사용하는 종속 항목을 포함하여 종속 항목을 설치하기 위해 표준 requirements.txt 파일을 사용합니다. 자세한 내용은 Python 3 런타임에서 종속 항목 지정을 참조하세요.