Admin API で App Engine アプリケーションを作成する

Google App Engine Admin API を使用すれば、新しい Google Cloud Platform プロジェクトで、App Engine アプリケーションをプログラムで作成できます。Admin API と Cloud Resource Manager API を使用することで、GCP プロジェクトと App Engine アプリケーションをプログラムによって管理できるようになります。

App Engine アプリケーションを作成すると、指定された場所に、ターゲット GCP プロジェクト用の Application リソースが作成されます。

GCP プロジェクトで App Engine アプリケーションを手動で作成する方法については、ご使用の言語に対応する、スタンダード環境またはフレキシブル環境でのプロジェクト、アプリケーション、課金の管理に関するトピックをご覧ください。

始める前に

Admin API を使用して App Engine アプリケーションを作成するには、次の前提条件を満たす必要があります。

他のユーザー アカウントが App Engine アプリケーションでタスクを実行できるようにするには、GCP プロジェクトのオーナーが最初に Application リソースを作成する必要があります。たとえば、App Engine デプロイ担当者の役割を持つユーザー アカウントがサービス アカウントを使用してアプリをデプロイできるようにするには、先に App Engine アプリケーションを作成しておく必要があります。

GCP プロジェクトを作成するには:

API

プログラムによって GCP プロジェクトを作成するには、Cloud Resource Manager API を使用します。詳しくは新しいプロジェクトを作成するをご覧ください。 簡単な例を参照できます。

Console

GCP Console を使用して GCP プロジェクトを作成するには:

プロジェクト ページに移動

gcloud

Google Cloud SDK をインストールした後、gcloud ツールで次のコマンドを実行して、GCP プロジェクトを作成できます。

gcloud projects create

プロジェクトでサポートされる App Engine アプリケーションは 1 つだけであるため、既存の GCP プロジェクトを使用する場合は、プロジェクトにすでに Application リソースが含まれていないことを確認する必要があります。GCP プロジェクトに Application リソースがすでに含まれているかどうか確認するには、apps.get メソッドを使用するか、gcloud app describe コマンドを実行します。

App Engine アプリケーションの作成

Admin API を使用して App Engine アプリケーションを作成するには:

  1. アクセス トークンの取得など、HTTP リクエストを承認します。

    Admin API へのアクセスを承認するには、API アプリのニーズに応じて、さまざまな OAuth フローを使用できます。詳しくは、API へのアクセスをご覧ください。

  2. アクセス トークンと Admin API を使用して HTTP POST リクエストを送信し、App Engine アプリケーションを作成します。

    HTTP POST リクエスト内に Application リソースとターゲット GCP プロジェクトを定義します。次に例を示します。

    POST https://appengine.googleapis.com/v1/apps { "id": "[MY_PROJECT_ID]", "locationId": "[MY_APP_LOCATION]" }
    

    必須の HTTP リクエスト フィールド:

    • id: App Engine アプリケーションを作成するターゲット GCP プロジェクトのプロジェクト ID

    • locationId: App Engine のロケーションに記載されている、App Engine アプリケーションがある地理的地域の名前。例: us-east1

      サポートされているロケーションの一覧を確認するには、apps.locations.list メソッドを使用します。

      例: APIs Explorer のサンプル リクエストを承認して実行すると、サポートされているロケーションの最新の一覧が表示されます。

    フィールド オプションの一覧については、Application リソースをご覧ください。

    cURL コマンドの例:

    curl -X POST -d "{ 'id': '[MY_PROJECT_ID]', 'locationId': '[MY_APP_LOCATION]' }" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps
    

    ここで

    • [MY_PROJECT_ID] は、App Engine アプリケーションを作成するターゲット プロジェクトの ID です。
    • [MY_APP_LOCATION] は、App Engine アプリケーションを作成するロケーションです。
    • [MY_ACCESS_TOKEN] は、HTTP リクエストを承認するために取得したアクセス トークンです。

    レスポンスの例:

    {
      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
      "metadata": {
        "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
        "method": "google.appengine.v1.Applications.CreateApplication",
        "insertTime": "2016-10-03T20:48:02.099Z",
        "user": "me@example.com",
        "target": "apps/[MY_PROJECT_ID]"
      }
    }
    
  3. App Engine アプリケーションが作成されたことを確認します。

    1. 実際の作成オペレーションのステータスを表示します。

      前の手順で使用した HTTP POST リクエストから、name フィールドにオペレーション名が返されました。これを apps.operations コレクションGET メソッドで使用して、作成オペレーションのステータスを確認します。

      たとえば、レスポンスの name フィールドが次のようになっていると仮定します。

      "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f"
      

      この場合、次の HTTP GET リクエストを送信します。

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      cURL コマンドの例:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f
      

      [MY_ACCESS_TOKEN] はアクセス トークンで、[MY_PROJECT_ID] はターゲット プロジェクトの ID です。

      レスポンスの例:

      {
        "name": "apps/[MY_PROJECT_ID]/operations/0a37a032-be3f-4c20-98b4-e3300447450f",
        "metadata": {
          "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
          "method": "google.appengine.v1.Applications.CreateApplication",
          "insertTime": "2016-10-03T20:48:02.099Z",
          "endTime": "2016-10-03T20:48:18.272Z",
          "user": "me@example.com",
          "target": "apps/[MY_PROJECT_ID]"
        },
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.appengine.v1.Application",
          "id": "[MY_PROJECT_ID]",
          "locationId": "[MY_APP_LOCATION]"
        }
      }
      
    2. プロジェクト内に App Engine アプリケーションが作成されたことを確認します。

      バージョンの詳細を確認するには、apps コレクションGET メソッドを使用します。HTTP GET リクエストにデプロイしたプロジェクトを指定する必要があります。例:

      GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]
      

      cURL コマンドの例:

      curl -X GET -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/
      

      [MY_ACCESS_TOKEN] はアクセス トークンで、[MY_PROJECT_ID] はターゲット プロジェクトの ID です。

      レスポンスの例:

      {
        "name": "apps/[MY_PROJECT_ID]",
        "id": "[MY_PROJECT_ID]",
        "authDomain": "gmail.com",
        "locationId": "us-central",
        "defaultHostname": "[MY_PROJECT_ID].appspot.com",
        "defaultBucket": "[MY_PROJECT_ID].appspot.com"
      }
      

次のステップ

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

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