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

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

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

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

ヒント: app.json 構成ファイルをプログラムで生成することもできます。

始める前に

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 の例では、Cloud Storage バケット [MY_BUCKET_ID] の 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,
}

ヒント: App Engine がサポートするランタイムのすべてが ScriptHandler をサポートしているわけではありません。詳細については、使用している言語のランタイムapp.yaml または appengine-web.xml のリファレンスをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...