访问 Admin API

作为 Google Cloud 项目所有者,您必须先在项目中启用 App Engine Admin API,然后创建用户或应用可用于授权 HTTP 请求的凭据,这样用户或应用才能使用该 API。

例如,所有者必须先创建初始 Google Cloud 项目,然后在该项目中创建凭据,然后其他用户才能向 Admin API 发送 HTTP 请求。在所有者设置并配置初始项目后,该项目可用于管理目的,可以通过编程方式创建和管理其他资源,例如:

  • 创建其他 Google Cloud 项目。
  • 为所有新建项目创建 App Engine 应用。
  • 将应用版本部署到新建的 App Engine 应用。
  • 管理您部署的所有版本中的资源。

准备工作

要完成以下任务,您必须是要在其中为用户和应用启用 Admin API 的 Google Cloud 项目的所有者。

配置项目并创建凭据

要配置 Google Cloud 项目并创建凭据,请执行以下操作:

  1. 在 Google Cloud 项目中启用 App Engine Admin API 和 Cloud Storage API:

    启用这两个 API

  2. 创建用户和应用用于访问项目中的 Admin API 的凭据。

    要创建凭据,请查看 Google Cloud Platform 身份验证指南,然后选择符合应用要求的 OAuth 2.0 授权流程。

示例

为了演示身份验证流程,以下示例使用客户端 OAuth 2.0 流程来获取令牌。该令牌用于通过 cURL 命令行工具授权对 Admin API 的请求,从而将示例应用部署到项目 [MY_PROJECT_ID] 的 App Engine 应用。

身份验证示例

在本例中,客户端授权流程(称为隐式授权流程)要求用户授权客户端应用,使其能够代表用户访问 Admin API。返回的访问令牌有效期约 60 分钟,或者通常在用户于您的应用中处于活动状态时有效。

HTTP 请求

以下网址使用在 Google Cloud Console 中创建的客户端 ID 来请求访问令牌,然后将用户重定向到应用接收令牌的已获授权的 URI:

https://accounts.google.com/o/oauth2/v2/auth?
  response_type=token&
  client_id=[MY_CLIENT_ID].apps.googleusercontent.com&
  scope=https://www.googleapis.com/auth/cloud-platform&
  redirect_uri=[MY_REDIRECT_URI]

其中:

  • [MY_CLIENT_ID]Google Cloud 控制台中某个凭据的客户端 ID
  • [MY_REDIRECT_URI]Google Cloud 控制台中同一凭据对应的已获授权的重定向 URI。如果未指定重定向 URI,则必须指定可信 URI,例如 https://www.google.com。重定向 URI 定义 HTTP 响应的发送位置。对于生产环境,您必须指定应用的身份验证端点,它用于处理来自 OAuth 2.0 服务器的响应。如需了解详情,请参阅针对网络服务器应用使用 OAuth 2.0

HTTP 响应

如果应用使用网址来请求授权,则会在响应中返回访问令牌,例如:

https://www.google.com/#access_token=[MY_ACCESS_TOKEN]&
  token_type=Bearer&
  expires_in=3600

其中,[MY_ACCESS_TOKEN] 是根据您的请求返回的访问令牌。

获取访问令牌后,您可以使用它来访问 Admin API。例如,应用的身份验证端点可以通过编程方式从响应中提取访问令牌。要了解如何在 cURL 命令中手动使用令牌,请参阅以下示例。

使用 cURL 的 HTTP 请求示例

以下 cURL 命令演示了如何使用 [MY_ACCESS_TOKEN] 访问令牌发出 HTTP POST 请求。此 cURL 命令会将 app.json 配置文件中定义的资源部署到项目 MY_PROJECT_ID 的应用中的 v1default 服务。

curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions

后续步骤