appcfg.py 指令列引數

appcfg.py 指令採用一組選項、動作以及動作的引數。此指令用於各種應用程式管理工作,包含部署您的應用程式以及更新資料儲存庫索引

appcfg 僅包含在原始的 App Engine SDK 中,您可以下載並在 Python 專用的原始 App Engine SDK 中安裝。

App Engine SDK 經常更新,此引數列表可能並非最新版本。輸入 appcfg.py help 即可查看所有可用動作清單,輸入 appcfg.py help <action> 則可查看特定動作的詳細資料。

update

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

更新動作會建立或更新頂層目錄中 app.yaml 檔案指定的應用程式版本。

如果指定一個目錄,該目錄必須包含 app.yaml 檔案,且所有其他檔案皆須為應用程式需要的檔案,或者是由 app.yaml 檔案定義的模組

如果目錄中包含任何全域應用程式設定檔 (index.yamlqueues.yamldispatch.yamldos.yamlcron.yaml),請使用每個檔案專屬的更新指令來部署該設定檔。例如,使用 update_dispatch 來部署分派檔案,使用 update_cron 部署 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 <app_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 代表 CRITICAL (重大)、3 代表 ERROR (錯誤)、2 代表 WARNING (警告)、1 代表 INFO (資訊)、0 代表 DEBUG (偵錯)。擷取給定記錄等級或更高等級的所有訊息。預設值是 1 (INFO)。
--append

從尚未出現在檔案中的第一行記錄開始,將已擷取的資料附加至輸出檔案。使用包含所有記錄資料之檔案中的 --append 結果,且每天執行此動作一次。

預設為覆寫輸出檔案。如果 output-file-,則不適用 (顯示於主控台)。

--vhost=...

如果使用此動作,則此指令將限制下載的記錄訊息只包含要求針對指定網域名稱所發出的訊息。例如,--vhost=google.com 下載只針對 G Suite 網域 google.com 中,即時應用程式的紀錄訊息,不包括測試版本 http://2.latest.your_app_id.appspot.com 中發出的任何紀錄訊息。同樣地,--vhost=2.latest.your_app_id.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 app_id -V version
針對特定的應用程式刪除特定的版本。

update_cron

appcfg.py [options] update_cron <app-directory>
依據 cron.yaml 檔案,更新應用程式排程工作 (cron) 的設定。

update_dos

appcfg.py [options] update_dos <app-directory>
根據 dos.yaml 檔案,更新應用程式的 DoS 保護設定。

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。在預設情況下,這是從應用程式目錄中的 application: 檔案中的 app.yaml 行所衍生的值。如果指定 --application,會覆寫此動作在 app.yaml 中的 ID。
--force
強制刪除不再使用的索引。在預設情況下,上傳應用程式並不會刪除伺服器中未使用的索引,即使索引未出現在 index.yaml 檔案中也是如此。
--host=...
搭配遠端程序呼叫使用的本機電腦主機名稱。
--max_size=...
上傳檔案的大小上限,以位元為單位。不會上傳超過此大小上限的檔案。預設值為 10485760。伺服器強制最大的檔案大小為 10,485,760 位元,因而增加此值將沒有影響。
--module=...
模組使用的名稱。在預設情況下,這是從應用程式目錄中的 module: 檔案中的 app.yaml 行所衍生的值。如果指定 --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。在預設情況下,這是從應用程式目錄中的 version: 檔案中的 app.yaml 行所衍生的值。如果指定 --version,會覆寫此動作在 app.yaml 中的版本 ID。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine standard environment for Python 2