appcfg.py 指令列引數

您必須在 appcfg.py 指令中設定一組選項、一個動作和動作相關引數。這個指令可用於各種應用程式管理工作,包括部署應用程式更新資料儲存庫索引

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

App Engine SDK 會經常更新,因此這個引數清單可能不符現況。輸入 appcfg.py help 可查看所有可用動作的列表,輸入 appcfg.py help <action> 可查看特定動作的詳細資料。

更新

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 <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,則擷取所有可用的記錄。若已提供 --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_project_id.appspot.com 中發出的任何記錄訊息。同樣地,--vhost=2.latest.your_project_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 project_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。在預設情況下,這是從應用程式目錄中 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。
本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
Python 2 適用的 App Engine 標準環境