区域 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 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。
Google Cloud 项目所有者必须先创建 Application
资源,然后其他用户账号才能对 App Engine 应用执行任务。例如,您必须先创建 App Engine 应用,然后具有 App Engine Deployer 角色的用户账号才能使用服务账号来部署应用。
要创建 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 的创建新项目主题。
如果您选择使用现有 Google Cloud 项目,则必须确保该项目尚未包含 Application
资源,因为一个项目只能有一个 App Engine 应用。如需检查您的 Google Cloud 项目是否已包含 Application
资源,您可以使用 apps.get
方法或运行 gcloud app describe
命令。
创建 App Engine 应用
要使用 Admin API 创建 App Engine 应用,请执行以下操作:
授权您的 HTTP 请求,例如获取访问令牌。
您可以使用不同的 OAuth 流程来完成 Admin API 的访问授权,具体取决于 API 应用的需求。如需了解详情,请参阅访问 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 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。