Node.js 12 现已正式发布。

测试和部署应用

地区 ID

REGION_ID 是 Google 根据您在创建应用时选择的地区分配的缩写代码。此代码不对应于国家/地区或省,尽管某些地区 ID 可能类似于常用国家/地区代码和省代码。在 App Engine 网址中包含 REGION_ID.r 对于现有应用是可选项,但在不久后将成为所有新应用的必要项。

为了确保顺利过渡,我们正在逐步更新 App Engine 以使用地区 ID。如果我们尚未更新您的 Google Cloud 项目,则您不会看到应用的地区 ID。由于该 ID 对于现有应用是可选的,因此您在现有应用可以使用地区 ID 后无需更新网址或进行其他更改。

详细了解地区 ID

了解如何在本地运行您的应用,以及如何在 App Engine 上部署和测试应用。

在本地运行

如需在部署之前测试应用的功能,请使用您常用的开发工具在本地环境中运行应用,例如,npm start

部署应用的准备工作

在部署应用之前,请做好以下准备:

部署应用

使用 gcloud app deploy 命令可以将您的应用部署到 App Engine。

在部署期间,Cloud Build 服务会为您的应用构建一个容器映像,用于在 App Engine 标准环境中运行。如需了解详情,请参阅管理构建映像

如需以编程方式部署应用,请使用 Admin API

部署服务

如需将应用部署到 App Engine,您需要部署各个版本的应用服务及其所有配置文件。

要部署应用服务的某个版本,请从服务的 app.yaml 文件所在的目录运行以下命令:

gcloud app deploy

如果使用该命令时不指定文件,则仅部署当前目录中的 app.yaml 文件。默认情况下,deploy 命令会为您所部署的版本生成一个唯一 ID,将该版本部署到 Google Cloud 项目(您已将 gcloud 工具配置为使用该项目),并将所有流量路由到新版本。

通过指定目标文件或添加额外的参数,您可以更改此命令的默认行为:

  • 如需部署服务的其他配置文件,您必须单独定位并部署每个文件。例如:
    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • 要指定自定义版本 ID,请使用 --version 标志。
  • 如需阻止流量自动路由到新版本,请使用 --no-promote 标志。
  • 如需部署到特定 Google Cloud 项目,请使用 --project 标志。

例如,如需将 app.yaml 定义的服务部署到特定 Google Cloud 项目,请为该服务分配一个自定义版本 ID,并阻止流量路由到新版本:

gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote

如需详细了解此命令,请参阅 gcloud app deploy 参考文档

部署多项服务

您可以使用相同的部署命令来部署或更新应用中包含的多项服务。

如需部署多项服务,请单独部署每项服务的 app.yaml 文件。您可以在一个 gcloud app deploy 命令中指定多个文件:

gcloud app deploy service1/app.yaml service2/app.yaml

部署多项服务的要求

  • 您必须先将应用的某个版本部署到 default 服务,然后才能创建和部署后续服务。
  • 您必须在每项服务对应的 app.yaml 配置文件中指定服务的 ID。如需指定服务 ID,请在每个配置文件中添加 service 元素定义。如果没有在配置文件中添加此元素定义,则该版本默认部署到 default 服务。

忽略文件

您可以使用 .gcloudignore 文件指定在部署服务时不会上传到 App Engine 的文件和目录。如果要忽略构建工件和其他无需随部署上传的文件,这种做法会非常实用。

管理构建映像

您每次部署新版本时,系统都会使用 Cloud Build 服务创建一个容器映像。该容器映像随后会在 App Engine 标准环境中运行。

构建的容器映像存储在 Container Registryapp-engine 文件夹中。您可以下载这些映像,以便在其他位置存储或运行。部署完成后,App Engine 便不再需要容器映像。请注意,容器映像不会自动删除,因此为了避免达到存储空间配额,您可以安全地删除不再需要的任何映像。如需详细了解如何在 Container Registry 中管理映像,请参阅 Container Registry 文档

查看应用

将应用部署到 App Engine 之后,您可以运行以下命令来启动浏览器,然后访问 https://PROJECT_ID.REGION_ID.r.appspot.com 来查看该应用:

gcloud app browse

在迁移流量之前在 App Engine 上进行测试

在配置新版本以接收流量之前,您可以在 App Engine 上测试新版本。例如,如需测试 default 服务的新版本,请执行以下操作:

  1. 部署新版本,但阻止流量自动路由到新版本:

    gcloud app deploy --no-promote

  2. 转到以下网址以访问新版本:

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    现在,您可以在 App Engine 运行时环境中测试新版本。您可以通过查看应用日志来调试应用。如需了解详情,请参阅写入应用日志

    发送到 https://PROJECT_ID.REGION_ID.r.appspot.com 的请求会路由到先前配置为接收流量的版本。

  3. 如需将流量发送到新版本,请使用 Cloud Console 迁移流量:

    管理版本

    选择刚部署的版本,然后点击迁移流量

如需使用相同流程来测试其他服务的新版本,您可以将网址中的 default 替换为要测试的服务的名称:

https://VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com

如需详细了解如何定位特定服务和版本,请参阅请求的路由方式