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.com
는https://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
에 있는 값을 재정의합니다. - 사용자의 액세스 토큰을 저장하지 않습니다. 매번 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를 재정의합니다.