デプロイ用の JSON 構成ファイルを作成する

Admin API でアプリのバージョンをデプロイするには、JSON 形式のファイルでバージョンの構成情報に関する詳細を定義します。構成ファイルは、手動で作成することも、既存の app.yaml ファイルを変換して作成することもできます。

JSON 形式の構成ファイルを作成する手順には、次の 2 つのステップがあります。

  1. デプロイするバージョンの構成情報を定義します。
  2. deployment セクションを定義して、デプロイする、アプリのすべてのファイルとリソースを指定します。

始める前に

app.json 構成ファイルを作成するには、まずアプリのすべてのファイルとリソースを Cloud Storage バケットにアップロードする必要があります。

JSON 構成ファイルを手動で作成する

アプリで app.yaml を除外している場合や、既存の Java アプリで appengine-web.xml ファイルを使用している場合など、構成ファイルを手動で作成する必要がある場合は、次の手順を行います。

Admin API でアプリをデプロイするための app.json 構成ファイルを手動で作成するには:

  1. app.json という名前のファイルを作成します
  2. apps.services.versions コレクションで提供される構成情報を使用して、デプロイするバージョンを定義して構成します。
  3. 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 ファイルを変換するには:

  1. 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
    
  2. convert_yaml.py ツールをダウンロードしたローカル ディレクトリに移動します。次に例を示します。

    cd root/tools/appengine-config-transformer
    
  3. 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] ディレクトリに作成されます。

  4. バージョンの ID が app.json 構成ファイルに定義されていることを確認します。

    app.yaml ファイルで version: [VERSION_NAME] 要素が除外されている場合、変換後の app.json ファイルに "id": [VERSION_NAME] 要素は含まれません。たとえば、バージョン ID を v1 に設定する場合は、app.json ファイルに次の行を手動で追加する必要があります。

    "id": "v1",
    
  5. 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,
}

次のステップ