如要使用 Admin API 部署應用程式版本,您必須使用 JSON 格式檔案定義版本的設定詳細資料。您可以手動建立設定檔,也可以轉換現有的 app.yaml
檔案。
建立 JSON 格式設定檔有兩個部分:
- 定義要部署的版本的設定資訊。
- 定義
deployment
區段,指定要部署的所有應用程式檔案和資源。
事前準備
您必須先將應用程式的所有檔案和資源上傳至 Cloud Storage 值區,才能建立 app.json
設定檔。
手動建立 JSON 設定檔
如果您需要手動建立設定檔,例如應用程式排除 app.yaml
或現有的 Java 應用程式使用 appengine-web.xml
檔案,請按照下列步驟操作。
如要手動建立 app.json
設定檔,以便透過 Admin API 部署應用程式,請按照下列步驟操作:
- 建立檔案名稱
app.json
。 - 使用 apps.services.versions 集合中提供的設定資訊,定義及設定要部署的版本。
- 使用「定義
deployment
部分」中的範本,指定您要從 Cloud Storage 值區部署的所有檔案和資源。
請參閱下方的範例,瞭解如何建立 app.json
設定檔。
將 app.yaml
檔案轉換為 JSON 格式
您可以使用 convert_yaml.py
工具,從現有的 app.yaml
檔案轉換及產生 app.json
版本。
如果您有 app.yaml
檔案,通常用於手動部署應用程式版本,您可以將這些設定轉換為 JSON 格式,保留該資訊。
修課條件
下載並安裝 convert_yaml.py
工具,包括指定的必要條件。
使用 convert_yaml.py
工具轉換 YAML 檔案
如要使用 convert_yaml.py
工具轉換 app.yaml
檔案,請按照下列步驟操作:
找出
app.yaml
的目錄路徑並記下。範例:
cd root/apps-container/my-application/
example-python-app.py
應用程式的app.yaml
可能會像這樣:service: default version: v1 runtime: python27 threadsafe: true handlers: - url: /.* script: example-python-app.py
前往下載
convert_yaml.py
工具的本機目錄,例如:cd root/tools/appengine-config-transformer
請執行
convert_yaml.py
工具,從app.yaml
檔案建立app.json
檔案:python ./convert_yaml.py [DIRECTORY_PATH]/app.yaml > [DIRECTORY_PATH]/app.json
其中
[DIRECTORY_PATH]
是app.yaml
檔案的目錄路徑。app.yaml
檔案的 JSON 版本 (app.json
) 會在[DIRECTORY_PATH]
目錄中建立。請確認版本 ID 已在
app.json
設定檔中定義。如果
app.yaml
檔案排除version: [VERSION_NAME]
元素,則轉換後app.json
檔案中不會包含"id": [VERSION_NAME]
元素。舉例來說,如果您想將版本 ID 設為v1
,必須手動在app.json
檔案中加入下列行:"id": "v1",
使用「定義
deployment
部分」中的範本,指定要部署的應用程式所有檔案和資源。
請參閱下方的範例,瞭解如何建立 app.json
設定檔。
定義 deployment
區段
如要在 app.json
設定檔中建立 deployment
區段,並手動定義位於 Cloud Storage 值區中的所有資源,請使用 apps.services.versions
集合的 deployment
區段中的參考資訊。如果您要定義個別檔案,可以使用下列範本:
"deployment": {
"files": {
"my-resource-file1": {
"sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/my-application/my-resource-file1"
},
}
},
其中 my-resource-file1
會定義檔案名稱和您要在 App Engine 中部署該檔案的相對目錄路徑。
範例 app.json
檔案
請參考下列 app.json
範例,瞭解如何建立設定檔。
在下列 app.json
範例中,v1
版本 ID 會與 deployment
區段一併定義,其中包含 [MY_BUCKET_ID]
Cloud Storage 值區的兩個範例來源檔案。
{
"deployment": {
"files": {
"example-resource-file1": {
"sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/example-resource-file1"
},
"images/example-resource-file2": {
"sourceUrl": "https://storage.googleapis.com/[MY_BUCKET_ID]/example-application/images/example-resource-file2"
},
}
},
"id": "v1",
"handlers": [
{
"urlRegex": "/.*",
"script": {
"scriptPath": "example-python-app.py"
}
},
],
"runtime": "python27",
"threadsafe": true,
}