区域 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
了解如何在本地运行您的应用,以及如何在 App Engine 上部署和测试应用。
在本地运行
如需在部署之前测试应用,请使用您常用的开发工具在本地环境中运行应用。
部署应用的准备工作
部署应用的准备工作:
- Google Cloud 项目的所有者必须为 App Engine 设置 Google Cloud 项目。
- 确保您的用户账号具备所需的权限。
部署应用
使用 gcloud app deploy
命令可以将您的应用部署到 App Engine。在部署期间,Cloud Build 服务会为您的应用构建一个容器映像,用于在标准环境中运行。每个 build 都与您的 Google Cloud 项目运行在同一区域。如需了解详情,请参阅管理构建映像。
如需以编程方式部署应用,请使用 Admin API。
部署服务
如需将应用部署到 App Engine,您需要部署各个版本的应用服务及其所有配置文件。
要部署应用服务的某个版本,请从服务的 app.yaml
文件所在的目录运行以下命令:
gcloud app deploy
如果使用该命令时不指定文件,则仅部署当前目录中的 app.yaml
文件。默认情况下,deploy
命令会为您所部署的版本生成一个唯一 ID,将该版本部署到 Google Cloud 项目(您已将 Google Cloud CLI 配置为使用该项目),并将所有流量路由到新版本。
通过指定目标文件或添加其他参数,您可以更改此命令的默认行为:
- 如需部署服务的其他配置文件,您必须单独定位并部署每个文件。例如:
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
参考文档。
部署多项服务
您可以使用相同的部署命令来部署或更新应用中包含的多项服务。
须知事项:
- 您必须先将应用的某个版本部署到
default
服务,然后才能创建和部署后续服务。 - 您必须在每项服务对应的
app.yaml
配置文件中指定服务的 ID。如需指定服务 ID,请在每个配置文件中添加service
元素定义。如果没有在配置文件中添加此元素定义,则该版本默认部署到default
服务。
如需部署多项服务,请单独部署每项服务的 app.yaml
文件。您可以在一个 gcloud app deploy
命令中指定多个文件:
gcloud app deploy service1/app.yaml service2/app.yaml
查看构建日志
Cloud Build 会流式传输构建日志和部署日志,您可以在 Google Cloud 控制台的 Cloud Build 构建记录部分查看这些日志。如需查看应用所在区域中的构建,请使用区域菜单按区域进行过滤。
管理构建映像
每次部署新版本时,会发生以下情况:
App Engine 使用 Cloud Build 服务创建容器映像。
Cloud Build 在应用所在区域中构建容器映像,然后在 App Engine 标准环境中运行。
App Engine 将构建的容器映像存储在 Artifact Registry 中。您可以下载这些映像,以便在其他位置存储或运行。
部署完成后,App Engine 便不再需要容器映像。容器映像不会自动删除。为了避免达到存储空间配额,您可以安全地删除不再需要的任何映像。但是,如果您将来可能需要这些映像,或者想要保留映像的副本,则需要在删除之前导出副本。如需详细了解如何在 Artifact Registry 中管理映像,请参阅管理映像。
忽略文件
您可以使用 .gcloudignore
文件指定在部署服务时不上传到 App Engine 的文件和目录。如果要忽略不需要随部署上传的构建工件和其他文件,该文件非常实用。
查看应用
将应用部署到 App Engine 之后,您可以运行以下命令来启动浏览器,然后访问 https://PROJECT_ID.REGION_ID.r.appspot.com
来查看该应用:
gcloud app browse
在迁移流量之前在 App Engine 上进行测试
在配置新版本以接收流量之前,您可以在 App Engine 上测试新版本。例如,如需测试 default
服务的新版本,请执行以下操作:
部署新版本,但阻止流量自动路由到新版本:
gcloud app deploy --no-promote
转到以下网址以访问新版本:
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
现在,您可以在 App Engine 运行时环境中测试新版本。您可以通过查看应用日志来调试应用。如需了解详情,请参阅写入应用日志。
App Engine 将发送到
https://PROJECT_ID.REGION_ID.r.appspot.com
的请求路由到先前配置为接收流量的版本。如需将流量发送到新版本,请使用 Google Cloud 控制台迁移流量:
选择刚部署的版本,然后点击迁移流量。
如需使用相同流程来测试其他服务的新版本,您可以将网址中的 default
替换为要测试的服务的名称:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
如需详细了解如何定位特定服务和版本,请参阅请求的路由方式。
使用构建环境变量
您可以为支持 buildpack 的运行时设置构建环境变量。
构建环境变量是键值对,您可以指定这些键值对来配置用于部署应用的 buildpack。例如,您可能希望指定编译器选项。
须知事项:
- 键必须以大写的 ASCII 字母开头,并且可以包含大写的 ASCII 字母、数字和下划线。
- 您应该避免创建具有
GOOGLE_*
键前缀的任何变量。 - 以下键均预留给 Google 使用:
GOOGLE_RUNTIME
GOOGLE_RUNTIME_VERSION
GOOGLE_ENTRYPOINT
GOOGLE_DEVMODE
- 您可以使用 Buildpack 支持的任何密钥。
如需将环境变量与 Buildpack 搭配使用,请在 app.yaml
文件中指定 build_env_variables
字段。
详细了解 Buildpack。
使用 Cloud Trace
Cloud Trace 对于了解请求如何在您的应用中传播非常有用。您可以检查单个请求的详细延迟时间信息,也可以查看整个应用的总体延迟时间。
如需在 Cloud Trace 中查看跟踪记录详细信息,您可以按照查找和探索跟踪记录进行操作。在 Trace 探索器中,您可以使用过滤条件按特定 App Engine 服务和版本进行过滤。