appcfg.py
コマンドには、一連のオプション、アクション、そのアクションの引数を指定できます。このコマンドは、アプリのデプロイやデータストア インデックスの更新など、各種のアプリケーション管理タスクに使用されます。
appcfg
ツールは、オリジナルの App Engine SDK にのみ含まれています。これは Python 2 用 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
を使用します。このコマンドはシンボリック リンクをたどり、すべてのファイルをサーバーに再帰的にアップロードします。
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=...
- 取得するログデータの日数(現在の日付の午前 0 時(UTC)で終了)。値を 0 に指定した場合、取得可能なすべてのログデータを取得します。
--append
を指定した場合のデフォルトは 0 で、それ以外の場合のデフォルトは 1 です。 --end_date=...
返すログデータの最終日を
YYYY-MM-DD
形式で指定します。デフォルトは今日です。--num_days
オプションは、この最終日から遡って数えます。--severity=...
取得するログメッセージの最小ログレベル。値はログレベルに対応した次の数値です。4: CRITICAL、3: ERROR、2: WARNING、1: INFO、0: DEBUG。指定したログレベル以上のすべてのメッセージが取得されます。デフォルトは 1(INFO)です。
--append
取得したデータのうち、まだ出力ファイルに存在していない最初の行以降をファイルに追加します。
--append
を指定してこのアクションを 1 日 1 回実行すると、すべてのログデータがファイルに格納されます。デフォルトでは、出力ファイルは上書きされます。
output-file
が-
(コンソールに出力)の場合は適用されません。--vhost=...
指定すると、ダウンロードするログメッセージは指定したドメイン名に対する出力メッセージに制限されます。たとえば、
--vhost=google.com
と指定すると、G Suite ドメインgoogle.com
で公開されているアプリのログメッセージだけがダウンロードされ、https://2-dot-latest-dot-your_project_id.[REGION_ID].r.appspot.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)の構成を
cron.yaml
ファイルに基づいて更新します。
update_dos
appcfg.py [options] update_dos <app-directory>
- アプリの DoS 保護構成を
dos.yaml
ファイルに基づいて更新します。
update_indexes
appcfg.py [options] update_indexes <app-directory>
- App Engine のデータストア インデックスを更新して、新しく追加されたインデックスが含まれるようにします。新しいバージョンのアプリケーションを使用するのに、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 から未使用のデータストア インデックスを削除します。
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 が使用されます。