区域 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
本指南可帮助您开始使用 App Engine 并熟悉 Go 应用的开发、部署和管理。
费用
运行本指南不会产生任何相关费用。单独运行此示例应用不会超出您的免费配额。
设置开发环境
您可以使用您的本地机器,也可以使用您熟悉的工具或 Cloud Shell。Cloud Shell 已经安装 Google Cloud CLI 并设置好您的环境,同时还提供了许多其他功能。
本地机器
安装 Go 并设置 gcloud CLI。
Cloud Shell
启动 Cloud Shell,其中包含所有需要预安装的工具:
创建 Google Cloud 项目
项目是使用 Google Cloud 的必要条件,也是使用所有 Google Cloud 服务的基础。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 创建 App Engine 应用及其相关资源。您必须选择一个位置,并且该位置以后无法更改。
gcloud app create
为 App Engine 编写基本 Web 服务
了解如何编写 Web 服务并声明运行时设置。
设计文件的结构
您的服务将具有以下文件结构:
go-app/
:Go 1.11 服务的目录。app.yaml
:服务的配置设置。main.go
:您的应用代码。
创建 app.yaml
文件
每个 App Engine 项目都有一个 app.yaml
配置文件,用于指定服务的运行时环境设置。必须具有此文件才能部署服务。
为您的 Go 1.11 服务创建名为
go-app
的新文件夹:mkdir go-app
在
go-app/
文件夹中,创建一个名为app.yaml
的文件,并添加以下内容:这是 App Engine 应用的最简单配置。它向 App Engine 指明您使用的是 Go 1.11 运行时。
app.yaml
文件还可以指定网络设置、扩缩设置等。如需了解详情,请参阅app.yaml
参考文档。
创建 main.go
文件
此示例使用 net/http
软件包来创建打印“Hello,World!”的 HTTP 服务器。
要设置您的 main.go
文件,请执行以下操作:
在您的
go-app/
文件夹中,创建一个main.go
文件。添加
package main
语句,以将代码视为可执行程序:package main
要在 Go 1.11 运行时中成功部署服务,必须在与服务的
app.yaml
文件位于同一目录中的至少一个 Go 源文件的开头定义package main
语句。导入以下软件包:
定义 HTTP 处理程序:
http.ResponseWriter
对象会组建 HTTP 服务器响应;通过向其写入数据,您可以将数据发送到浏览器。http.Request
对象是一种表示传入 HTTP 请求的数据结构。注册 HTTP 处理程序:
main
函数是可执行程序的入口点,因此它会启动应用。它首先会调用http.HandleFunc
函数,该函数会指示http
包使用indexHandler
函数处理对网络根目录 ("/"
) 的所有请求。如果您未设置
PORT
环境变量,则会使用默认端口8080
。当您的应用在 App Engine 上运行时,系统会为您设置PORT
环境变量,但在本地测试您的应用时,您可以将PORT
设置为任何首选值。
在 App Engine 上部署 Web 服务
在
app.yaml
文件所在的go-app
目录中,使用以下命令将您的 Web 服务部署到 App Engine:gcloud app deploy
如需启动浏览器并在
https://PROJECT_ID.REGION_ID.r.appspot.com
查看您的 Web 服务,请运行以下命令:gcloud app browse
恭喜!您刚刚在 App Engine 上创建并部署了一项服务。
服务和版本
您为应用部署的第一项服务将是默认服务。您可以在 app.yaml
文件中指定服务名称,但如果省略名称,则系统会将其视为 default
。您可以部署除默认服务之外的多项服务。
您可以通过运行 gcloud app deploy
命令随时更新服务。每次部署时,系统都会创建一个新版本,并自动将流量路由到最新版本。
要确认服务创建和版本部署,请执行以下操作:
在 Google Cloud 控制台中查看您的 App Engine 服务:
您应该看到,其中列出了一项名为
default
的服务。您可以通过以下网址公开访问默认服务:https://PROJECT_ID.REGION_ID.r.appspot.com
查看您的版本:
您应该会看到,系统列出了一个与您的部署相对应的带时间戳的版本。
如需了解如何将请求发送至特定服务和版本,请参阅请求的路由方式。
后续步骤
恭喜!您刚刚对网络应用进行了设置并将其部署到了 App Engine!
请浏览以下页面,了解如何向应用添加其他功能: