リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
App Engine Admin API を使用すれば、新しい Google Cloud プロジェクトで、App Engine アプリケーションをプログラムによって作成できます。Admin API と Cloud Resource Manager API を使用することで、Google Cloud プロジェクトと App Engine アプリケーションをプログラムによって管理できるようになります。
App Engine アプリケーションを作成すると、指定したロケーションに、ターゲット Google Cloud プロジェクト用の Application
リソースが作成されます。
Google Cloud プロジェクトで App Engine アプリケーションを手動で作成する方法については、ご使用の言語に対応する、スタンダード環境またはフレキシブル環境でのプロジェクト、アプリケーション、課金の管理に関するトピックをご覧ください。
始める前に
Admin API を使用して App Engine アプリケーションを作成するには、次の前提条件を満たす必要があります。
- Google Cloud プロジェクトを作成する、または既存の Google Cloud プロジェクトが存在する。
- ターゲット Google Cloud プロジェクトのオーナーである。
- Admin API にアクセスできる。
他のユーザー アカウントが App Engine アプリケーションでタスクを実行できるようにするには、Google Cloud プロジェクトのオーナーがまず Application
リソースを作成する必要があります。たとえば、App Engine デプロイ担当者のロールを持つユーザー アカウントがサービス アカウントを使用してアプリをデプロイできるようにするには、先に App Engine アプリケーションを作成しておく必要があります。
Google Cloud プロジェクトを作成するには、次の手順を行います。
API
プログラムで Google Cloud プロジェクトを作成するには、Cloud Resource Manager API を使用します。詳細については、新しいプロジェクトの作成をご覧ください。簡単な例を参照できます。
コンソール
Google Cloud コンソールを使用して Google Cloud プロジェクトを作成するには:
gcloud
Google Cloud CLI をインストールした後、gcloud CLI で次のコマンドを実行して、Google Cloud プロジェクトを作成できます。
gcloud projects create
Cloud Resource Manager API を使用して新しい Google Cloud プロジェクトを作成する
Google Cloud Resource Manager を使用してリクエストを送信するには、他の Google Cloud プロジェクトを作成する機能を付与する Google Cloud プロジェクトで、対象の API を有効にする必要があります。Google Cloud コンソールで Cloud Resource Manager API を有効にします。
アクセス トークンを使用して HTTP
POST
リクエストを送信します。POST https://cloudresourcemanager.googleapis.com/v1/projects/ { "projectId": "[MY_PROJECT_ID]", "name": "[MY_PROJECT_NAME]" }
cURL コマンドの例:
curl -X POST -d "{ 'projectId': '[MY_PROJECT_ID]', 'name': '[MY_PROJECT_NAME]' }" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://cloudresourcemanager.googleapis.com/v1/projects/
詳しくは、Cloud Resource Manager の新しいプロジェクトを作成するをご覧ください。
プロジェクトでサポートされる App Engine アプリケーションは 1 つのみであるため、既存の Google Cloud プロジェクトを使用する場合は、プロジェクトにすでに Application
リソースが含まれていないことを確認する必要があります。Google Cloud プロジェクトに Application
リソースがすでに含まれているかどうかを確認するには、apps.get
メソッドを使用するか、gcloud app describe
コマンドを実行します。
App Engine アプリケーションの作成
Admin API を使用して App Engine アプリケーションを作成するには:
アクセス トークンの取得など、HTTP リクエストを承認します。
Admin API へのアクセスの承認は、API アプリのニーズに応じてさまざまな OAuth フローを使用して行うことができます。詳細については、API へのアクセスをご覧ください。
アクセス トークンと Admin API を使用して HTTP
POST
リクエストを送信し、App Engine アプリケーションを作成します。HTTP
POST
リクエストでApplication
リソースとターゲット Google Cloud プロジェクトを定義します。次に例を示します。POST https://appengine.googleapis.com/v1/apps { "id": "[MY_PROJECT_ID]", "locationId": "[MY_APP_LOCATION]" }
必須の HTTP リクエスト フィールド:
id
: App Engine アプリケーションを作成するターゲット Google Cloud プロジェクトのプロジェクト 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]" } }
App Engine アプリケーションが作成されたことを確認します。
実際の作成オペレーションのステータスを表示します。
前のステップで使用した 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]" } }
プロジェクト内に App Engine アプリケーションが作成されたことを確認します。
バージョンの詳細を表示するには、
apps
コレクションのGET
メソッドを使用します。HTTPGET
リクエストにデプロイしたプロジェクトを指定する必要があります。次に例を示します。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].[REGION_ID].r.appspot.com", "defaultBucket": "[MY_PROJECT_ID].[REGION_ID].r.appspot.com" }
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
が App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。