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

appcfg.py 명령줄 인수

appcfg.py 명령어에는 옵션, 작업, 작업 인수의 모음이 사용됩니다. 이 명령어는 앱 배포Datastore 색인 업데이트 등 다양한 애플리케이션 관리 태스크에 사용됩니다.

appcfg 도구는 Python 2용 원본 App Engine SDK에서 다운로드 및 설치할 수 있는 원본 App Engine SDK에만 포함됩니다.

App Engine SDK는 자주 업데이트되므로 이 인수 목록은 최신 정보가 아닐 수도 있습니다. 사용 가능한 작업 목록을 모두 표시하려면 appcfg.py help를 입력하고 특정 작업에 대한 세부사항을 표시하려면 appcfg.py help <action>을 입력하세요.

update

appcfg.py [options] update <app-directory>|<files...>

update 작업은 앱 버전을 만들거나 업데이트하며, 이러한 앱 버전의 이름은 디렉터리 최상위에 있는 app.yaml 파일에 지정되어 있습니다.

디렉터리를 지정하는 경우 디렉터리에 app.yaml 파일과 앱 또는 app.yaml 파일에 정의된 모듈에서 필요로 하는 그 밖의 모든 파일이 포함되어야 합니다.

디렉터리에 전체 애플리케이션 설정 파일(index.yaml, queues.yaml, dispatch.yaml, dos.yaml, cron.yaml)이 포함된 경우에는 각각에 해당하는 업데이트 명령어를 사용하여 구성 파일을 배포합니다. 예를 들어 디스패치 파일을 배포할 때는 update_dispatch를, cron 파일을 배포할 때는 update_cron을 사용합니다.

명령어는 symlink를 따르며 서버에 모든 파일을 재귀적으로 업로드합니다. foo~, .svn/* 등의 소스 제어 또는 임시 파일은 건너뜁니다.

파일 인수를 사용하여 모듈을 정의하는 하나 이상의 YAML 파일을 업로드합니다. 다른 유형의 YAML 파일은 명령줄에 나타날 수 없습니다. 지정된 모듈만 업데이트됩니다.

update에 적용되는 옵션은 다음과 같습니다.

--max_size
업로드할 최대 파일 크기(단위: 바이트)
--no_precompilation
자동 Python 사전 컴파일을 중지합니다. 사전 컴파일은 앱 성능을 향상시키고 Python 모듈 또는 파일을 가져오는 시간을 줄여주고, 앱 인스턴스에서 처리되는 첫 번째 요청의 속도를 높여줍니다. 앱을 배포할 때 사전 컴파일 오류가 발생하면 이 매개변수를 지정해보세요.

help

appcfg.py help <action>
특정 작업에 대한 도움말 메시지를 인쇄한 후 종료합니다.

cron_info

appcfg.py [options] cron_info <app-directory>
이어지는 몇 개의 실행에 대한 예상 시간을 포함하여 예약된 태스크(cron) 구성에 대한 정보를 표시합니다. 기본적으로 이후 예정된 실행 5개의 시간이 표시됩니다. --num_runs=... 옵션을 사용하면 표시된 이후 실행 시간의 수를 수정할 수 있습니다.

download_app

appcfg.py download_app -A <project_id> -V <version> <output-dir>

다음 옵션을 사용하여 최신 버전의 애플리케이션 코드를 검색합니다.

-A
필수. 프로젝트 ID입니다.
-V
선택사항 다운로드할 코드의 버전을 지정합니다. 생략하면 기본 버전이 다운로드됩니다.
<output-dir>
필수. 파일을 저장할 디렉터리입니다.

request_logs

appcfg.py [options] request_logs <app-directory> <output-file>

App Engine에서 실행되는 애플리케이션의 로그 데이터를 검색합니다. --append 플래그를 설정한 경우 output-file 매개변수를 만들거나, 바꾸거나, 추가할 파일의 이름입니다. output-file이 하이픈(-)이면 로그 데이터가 콘솔에 인쇄됩니다. request_logs에 적용되는 옵션은 다음과 같습니다.

--num_days=...
검색할 로그 데이터의 일수입니다(UTC 현재 일자 자정에 종료). 0 값을 입력하면 사용 가능한 모든 로그가 검색됩니다. --append가 제공되면 기본값이 0이고 그 밖의 경우에는 기본값이 1입니다.
--end_date=...

반환할 로그 데이터의 최신 날짜로 YYYY-MM-DD 형식을 사용합니다. 기본값은 오늘입니다. --num_days 옵션은 종료 날짜부터 역순으로 집계합니다.

--severity=...

검색할 로그 메시지의 최소 로그 레벨입니다. 값은 로그 수준에 해당하는 숫자로 4(심각), 3(오류), 2(경고), 1(정보), 0(디버그)을 사용합니다. 특정 로그 수준 이상의 모든 메시지가 검색됩니다. 기본값은 1(정보)입니다.

--append

아직 파일에 존재하지 않는 첫 번째 로그 줄부터 시작하여 가져온 데이터를 출력 파일에 추가합니다. --append를 사용하여 하루에 한 번 이 작업을 실행하면 모든 로그 데이터가 포함된 파일이 생성됩니다.

기본값은 출력 파일을 덮어쓰는 것입니다. output-file-인 경우(콘솔에 인쇄)에는 적용되지 않습니다.

--vhost=...

존재하는 경우, 다운로드된 로그 메시지를 제공된 도메인 이름의 요청에서 발생시킨 로그 메시지로 제한합니다. 예를 들어 --vhost=google.comhttps://2-dot-latest-dot-your_project_id.[REGION_ID].r.appspot.com에서 테스트되는 새 버전에서 생성되는 로그 메시지를 제외하고 G Suite 도메인google.com에서 실시간 앱의 로그 메시지만 다운로드합니다. 마찬가지로 --vhost=2.latest.your_project_id.[REGION_ID].r.appspot.com은 서비스 중인 버전을 제외하고 테스트 버전의 로그만 다운로드합니다.

이 값은 수신되는 요청의 Host 헤더와 일치하는 정규 표현식입니다. 도메인 이름은 일반적으로 대소문자를 구분하지 않지만, 이 패턴은 대소문자를 구분합니다.

--include_vhost

요청 로그 데이터에 각 요청의 도메인 이름(Host 요청 헤더)을 추가 필드로 포함합니다.

rollback

appcfg.py [options] rollback <app-directory>
특정 애플리케이션의 부분 완료된 업데이트를 되돌립니다. 업데이트가 중단되고 명령어에서 잠금으로 인해 애플리케이션을 업데이트할 수 없다고 보고하는 경우 이 옵션을 사용할 수 있습니다.

set_default_version

appcfg.py [options] set_default_version <app-directory>
특정 모듈의 기본 버전을 지정합니다.

migrate_traffic

appcfg.py [options] migrate_traffic <app-directory>
트래픽 마이그레이션을 구현합니다. 앱의 현재 기본(제공 역할) 버전에서 app.yaml에 지정된 버전으로 트래픽을 동적으로 다시 라우팅합니다. 앱이 수신하는 트래픽 양 및 실행 중인 인스턴스 수에 따라 단 몇 분 만에 트래픽이 구버전에서 새 버전으로 이동합니다. 모든 트래픽이 이전되면 기본(제공) 버전의 앱이 새 버전으로 재설정됩니다.

list_versions

appcfg.py [options] list_versions <app-directory>
애플리케이션의 각 모듈에 대해 업로드된 버전을 YAML에 출력합니다. YAML은 연관 배열 형식을 사용하며 module_ids를 해당 모듈에 대해 업로드된 버전의 목록에 매핑합니다. 기본 버전은 목록에 첫 번째로 표시됩니다.

delete_version

appcfg.py [options] delete_version -A project_id -V version
지정된 애플리케이션의 지정된 버전을 삭제합니다.

update_cron

appcfg.py [options] update_cron <app-directory>
cron.yaml 파일에 따라 앱의 예약 태스크(크론) 구성을 업데이트합니다.

update_dos

appcfg.py [options] update_dos <app-directory>
dos.yaml 파일에 따라 앱의 DoS 보호 구성을 업데이트합니다.

update_indexes

appcfg.py [options] update_indexes <app-directory>
새로 추가된 인덱스가 포함되도록 App Engine의 Datastore 색인을 업데이트합니다. 새 버전의 애플리케이션에는 index.yaml에 추가된 색인 정의가 추가로 필요하다면 새 버전의 애플리케이션을 업데이트하기 전에 App Engine에 색인 정의를 업데이트하면 됩니다. 새 애플리케이션 버전을 업로드하기 몇 시간 전에 이 작업을 실행하면 색인이 구축될 시간을 확보할 수 있어 애플리케이션이 배포되기 전부터 이미 색인이 제공됩니다.

update_queues

appcfg.py [options] update_queues <app-directory>
queue.yaml 파일에 따라 앱의 태스크 큐 구성을 업데이트합니다.

update_dispatch

appcfg.py [options] update_dispatch <app-directory>
dispatch.yaml 파일에 따라 앱의 디스패치를 업데이트합니다.

start_module_version

appcfg.py [options] start_module_version <app-directory>

지정된 모듈 버전 시작

app.yaml 파일에서 --module--version 옵션을 사용하여 설정을 재정의합니다.

stop_module_version

appcfg.py [options] stop_module_version <app-directory>

지정된 모듈 버전 중지

app.yaml 파일에서 --module--version 옵션을 사용하여 설정을 재정의합니다.

vacuum_indexes

appcfg.py [options] vacuum_indexes <app-directory>
App Engine에서 사용되지 않는 Datastore 색인을 삭제합니다. index.yaml에서 색인 정의를 삭제해도 App Engine에서 자동으로 색인이 삭제되지 않기 때문에 사용되지 않는 색인이 누적됩니다. 이 명령어를 호출하면 사용되지 않는 모든 색인이 App Engine에서 삭제됩니다.

전체 옵션

appcfg.py 명령어는 모든 작업에 대해 다음과 같은 옵션을 허용합니다.

--application=...
사용할 프로젝트 ID입니다. 기본적으로 애플리케이션 디렉터리에 있는 app.yaml 파일의 application: 줄에서 파생됩니다. --application이 지정되면 이 작업에 대해 app.yaml에 있는 ID를 재정의합니다.
--force
사용되지 않는 색인의 삭제를 강제 적용합니다. 기본적으로 앱을 업로드하면 사용되지 않는 색인이 index.yaml 파일에 표시되지는 않지만 서버에서 삭제되지 않습니다.
--host=...
리모트 프로시져 콜에서 사용할 로컬 머신의 호스트 이름입니다.
--max_size=...
업로드할 최대 파일 크기(단위: 바이트)입니다. 이 크기보다 큰 파일은 업로드되지 않습니다. 기본값은 10485760입니다. 서버에서 최대 파일 크기로 10,485,760바이트를 적용하기 때문에 값을 늘려도 아무 효과가 없습니다.
--module=...
사용할 모듈의 이름입니다. 기본적으로 애플리케이션 디렉터리에 있는 app.yaml 파일의 module: 줄에서 파생됩니다. --module이 지정되면 이 작업에 대해 app.yaml에 있는 값을 재정의합니다.
--no_cookies
사용자의 액세스 토큰을 저장하지 않습니다. 매번 OAuth2 플로우를 진행합니다.
--noisy
명령어가 수행 중인 작업에 대해 많은 메시지를 인쇄합니다. 주로 App Engine팀과 업로드 문제를 해결할 때 유용한 명령어입니다 .
--noauth_local_webserver
인증을 위한 웹페이지를 표시할 때 웹브라우저를 사용하지 않습니다. 머신에 원격 로그온한 경우 OAuth2 인증을 수행할 때 유용합니다. 이 플래그는 OAuth2에만 적용됩니다.
--oauth2_refresh_token=token
사용자 홈 디렉터리에 저장된 기본 토큰 대신 OAuth2 갱신 토큰을 사용하여 인증합니다.
--quiet
성공한 경우 메시지를 인쇄하지 않습니다.
--server=...
App Engine 서버 호스트 이름입니다. 기본값은 appengine.google.com입니다.
--verbose
명령어가 수행 중인 작업에 대한 메시지를 인쇄합니다.
--version=...
사용할 버전 ID입니다. 기본적으로 애플리케이션 디렉터리에 있는 app.yaml 파일의 version: 줄에서 파생됩니다. --version이 지정되면 이 작업에 대해 app.yaml에 있는 버전 ID를 재정의합니다.