Admin API でアプリのバージョンをデプロイするには、JSON 形式のファイルでバージョンの構成情報に関する詳細を定義します。構成ファイルは、手動で作成することも、既存の app.yaml
ファイルを変換して作成することもできます。
JSON 形式の構成ファイルを作成する手順には、次の 2 つのステップがあります。
- デプロイするバージョンの構成情報を定義します。
deployment
セクションを定義して、デプロイする、アプリのすべてのファイルとリソースを指定します。
始める前に
app.json
構成ファイルを作成するには、まずアプリのすべてのファイルとリソースを Cloud Storage バケットにアップロードする必要があります。
JSON 構成ファイルを手動で作成する
アプリで app.yaml
を除外している場合や、既存の Java アプリで appengine-web.xml
ファイルを使用している場合など、構成ファイルを手動で作成する必要がある場合は、次の手順を行います。
Admin API でアプリをデプロイするための app.json
構成ファイルを手動で作成するには:
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
の例では、[MY_BUCKET_ID]
Cloud Storage バケットの 2 つのサンプル ソースファイルを含む deployment
セクションとともに、バージョン ID v1
を定義しています。
{
"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,
}