기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Python 플랫폼 사용
AWS App Runner Python 플랫폼은 관리형 런타임을 제공합니다. 각 런타임을 통해 Python 버전을 기반으로 하는 웹 애플리케이션으로 컨테이너를 쉽게 빌드하고 실행할 수 있습니다. Python 런타임을 사용하는 경우 App Runner는 관리되는 Python 런타임 이미지로 시작합니다. 이 이미지는 Amazon Linux Docker 이미지를
App Runner 콘솔 또는 작업을 사용하여 서비스를 만들 때 App Runner 서비스의 런타임을 지정합니다. CreateServiceAPI 런타임을 소스 코드의 일부로 지정할 수도 있습니다. 코드 리포지토리에 포함하는 App Runner 구성 파일에서 runtime 키워드를 사용하십시오. 관리형 런타임의 명명 규칙은 다음과 같습니다.<language-name><major-version>
.
유효한 Python 런타임 이름과 버전은 을 참조하십시오Python 런타임 릴리스 정보.
App Runner는 모든 배포 또는 서비스 업데이트에서 서비스의 런타임을 최신 버전으로 업데이트합니다. 애플리케이션에 특정 버전의 관리형 런타임이 필요한 경우 App Runner 구성 파일의 runtime-version
키워드를 사용하여 지정할 수 있습니다. 메이저 또는 마이너 버전을 포함하여 모든 수준의 버전으로 잠글 수 있습니다. App Runner는 서비스 런타임을 하위 수준으로만 업데이트합니다.
Python 런타임의 버전 구문: major
[.minor
[.patch
]]
예: 3.8.5
다음 예제는 버전 잠금을 보여줍니다.
-
3.8
— 메이저 버전과 마이너 버전을 잠급니다. App Runner는 패치 버전만 업데이트합니다. -
3.8.5
— 특정 패치 버전으로 잠급니다. App Runner는 런타임 버전을 업데이트하지 않습니다.
Python 런타임 구성
관리형 런타임을 선택할 때는 최소한 명령을 빌드하고 실행하도록 구성해야 합니다. App Runner 서비스를 만들거나 업데이트할 때 구성합니다. 다음 방법 중 하나를 사용하여 이 작업을 수행할 수 있습니다.
-
App Runner 콘솔 사용 — 생성 프로세스 또는 구성 탭의 빌드 구성 섹션에서 명령을 지정합니다.
-
앱 러너 사용 API — CreateServiceor UpdateServiceAPI작업을 호출합니다. CodeConfigurationValues데이터 유형의
BuildCommand
및StartCommand
멤버를 사용하여 명령을 지정합니다. -
구성 파일 사용 - 최대 3번의 빌드 단계에서 하나 이상의 빌드 명령과 애플리케이션을 시작하는 데 사용되는 단일 실행 명령을 지정합니다. 추가 선택적 구성 설정이 있습니다.
구성 파일 제공은 선택 사항입니다. 콘솔 또는 를 사용하여 App Runner 서비스를 만들 때는 App Runner가 구성 설정을 만들 때 직접 가져오는지 아니면 구성 파일에서 가져오는지 지정합니다. API
특정 런타임 버전에 대한 콜아웃
참고
이제 App Runner는 Python 3.11 및 Node.js 18의 런타임 버전을 기반으로 애플리케이션의 업데이트된 빌드 프로세스를 실행합니다. 애플리케이션이 이러한 런타임 버전 중 하나에서 실행되는 경우 수정된 빌드 관리형 런타임 버전 및 앱 러너 빌드 프로세스에 대한 자세한 내용은 을 참조하십시오. 다른 모든 런타임 버전을 사용하는 애플리케이션은 영향을 받지 않으며 원래 빌드 프로세스를 계속 사용합니다.
Python 3.11 (개정된 앱 러너 빌드)
관리되는 Python 3.11 런타임에 대해 apprunner.yaml의 다음 설정을 사용하십시오.
-
상단 섹션의 키를 다음과 같이 설정합니다.
runtime
python311
예
runtime: python311
-
pip3
대신pip
를 사용하여 종속성을 설치하십시오. -
대신
python3
인터프리터를 사용하세요.python
-
pip3
설치 프로그램을 명령으로pre-run
실행합니다. Python은 디렉토리 외부에 종속성을 설치합니다./app
App Runner는 Python 3.11용으로 수정된 App Runner 빌드를 실행하므로apprunner.yaml
파일의 Build 섹션에 있는 명령을 통해/app
디렉토리 외부에 설치된 모든 것은 손실됩니다. 자세한 내용은 수정된 앱 러너 빌드 단원을 참조하십시오.예
run: runtime-version:
3.11
pre-run: - pip3 install pipenv - pipenv install - python3 copy-global-files.py command: pipenv run gunicorn django_apprunner.wsgi --log-file -
자세한 내용은 이 항목 뒷부분의 Python 3.11용 확장 구성 파일 예제도 참조하십시오.
Python 런타임 예제
다음 예제는 Python 서비스를 빌드하고 실행하기 위한 App Runner 구성 파일을 보여줍니다. 마지막 예는 Python 런타임 서비스에 배포할 수 있는 전체 Python 응용 프로그램의 소스 코드입니다.
참고
이 예제에 사용된 런타임 버전은 다음과 같습니다.3.7.7
그리고 3.11
. 사용하려는 버전으로 교체할 수 있습니다. 지원되는 최신 Python 런타임 버전은 을 참조하십시오Python 런타임 릴리스 정보.
이 예제는 Python 관리 런타임에서 사용할 수 있는 최소 구성 파일을 보여줍니다. App Runner가 최소 구성 파일을 사용하여 가정하는 내용은 을 참조하십시오. 구성 파일 예제
파이썬 3.11은 pip3
및 python3
명령을 사용합니다. 자세한 내용은 이 항목 뒷부분의 Python 3.11용 확장 구성 파일 예제를 참조하십시오.
예 apprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install pipenv - pipenv install run: command: python app.py
이 예제는 Python 관리 런타임에서 모든 구성 키를 사용하는 방법을 보여줍니다.
참고
이 예제에 사용된 런타임 버전은 다음과 같습니다.3.7.7
. 사용하려는 버전으로 교체할 수 있습니다. 지원되는 최신 Python 런타임 버전은 을 참조하십시오Python 런타임 릴리스 정보.
파이썬 3.11은 pip3
및 python3
명령을 사용합니다. 자세한 내용은 이 항목 뒷부분의 Python 3.11용 확장 구성 파일 예제를 참조하십시오.
예 apprunner.yaml
version: 1.0 runtime: python3 build: commands: pre-build: - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz build: - pip install pipenv - pipenv install post-build: - python manage.py test env: - name: DJANGO_SETTINGS_MODULE value: "django_apprunner.settings" - name: MY_VAR_EXAMPLE value: "example" run: runtime-version:
3.7.7
command: pipenv run gunicorn django_apprunner.wsgi --log-file - network: port: 8000 env: MY_APP_PORT env: - name: MY_VAR_EXAMPLE value: "example" secrets: - name: my-secret value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::" - name: my-parameter value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name" - name: my-parameter-only-name value-from: "parameter-name"
이 예제는 에서 Python 3.11 관리 런타임과 함께 모든 구성 키를 사용하는 방법을 보여줍니다. apprunner.yaml
이 Python 버전은 수정된 App Runner 빌드를 사용하므로 이 예제에는 pre-run
섹션이 포함되어 있습니다.
이 pre-run
매개변수는 수정된 App Runner 빌드에서만 지원됩니다. 애플리케이션이 원본 App Runner 빌드에서 지원하는 런타임 버전을 사용하는 경우 구성 파일에 이 매개변수를 삽입하지 마세요. 자세한 내용은 관리형 런타임 버전 및 앱 러너 빌드 단원을 참조하십시오.
참고
이 예제에 사용된 런타임 버전은 다음과 같습니다.3.11
. 사용하려는 버전으로 교체할 수 있습니다. 지원되는 최신 Python 런타임 버전은 을 참조하십시오Python 런타임 릴리스 정보.
예 apprunner.yaml
version: 1.0 runtime: python311 build: commands: pre-build: - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz build: - pip3 install pipenv - pipenv install post-build: - python3 manage.py test env: - name: DJANGO_SETTINGS_MODULE value: "django_apprunner.settings" - name: MY_VAR_EXAMPLE value: "example" run: runtime-version:
3.11
pre-run: - pip3 install pipenv - pipenv install - python3 copy-global-files.py command: pipenv run gunicorn django_apprunner.wsgi --log-file - network: port: 8000 env: MY_APP_PORT env: - name: MY_VAR_EXAMPLE value: "example" secrets: - name: my-secret value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::" - name: my-parameter value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name" - name: my-parameter-only-name value-from: "parameter-name"
이 예제에서는 Python 런타임 서비스에 배포할 수 있는 전체 Python 응용 프로그램의 소스 코드를 보여줍니다.
예 requirements.txt
pyramid==2.0
예 server.py
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response import os def hello_world(request): name = os.environ.get('NAME') if name == None or len(name) == 0: name = "world" message = "Hello, " + name + "!\n" return Response(message) if __name__ == '__main__': port = int(os.environ.get("PORT")) with Configurator() as config: config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() server = make_server('0.0.0.0', port, app) server.serve_forever()
예 aprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install -r requirements.txt run: command: python server.py