本教程介绍如何开始使用 Compute Engine。 请按照本教程向 Compute Engine 部署一个 Hello World Java Web 应用。如需获取 App Engine 入门方面的帮助,请参阅 App Engine 标准环境。
目标
- 使用 Cloud Shell 下载并部署 Hello World 示例应用。
- 将 Hello World 示例应用部署到单个 Compute Engine 实例。
费用
在本文档中,您将使用 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 Compute Engine API.
-
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 Compute Engine API.
-
在 Google Cloud Console 中,通过 Cloud Shell 打开此应用。
利用 Cloud Shell,您可以直接在浏览器中通过命令行访问云端资源。在浏览器中打开 Cloud Shell,然后点击继续下载示例代码并切换到应用目录。
-
在 Cloud Shell 中,配置
gcloud
CLI 以使用新的 Google Cloud 项目:# Configure gcloud for your project gcloud config set project YOUR_PROJECT_ID
在 Cloud Shell 中运行应用
在 Cloud Shell 中,启动本地网络服务器:
mvn -Plocal clean jetty:run-exploded -DprojectID=YOUR-PROJECT-ID
在 Cloud Shell 中,点击 Web 预览,然后选择在端口 8080 上预览。此时系统会打开一个新窗口,其中显示正在运行的应用。
在您的网络浏览器中,您会看到一些 Hello World 文本,这些文本是从本地机器提供的。
准备好继续操作后,在 Cloud Shell 中按 Control + C 停止本地网络服务器。
部署到单个实例
此部分逐步介绍了如何在 Compute Engine 上运行应用的单个实例。
您可以通过 Cloud Shell 将应用部署到单个 Compute Engine 实例虚拟机 (VM),以运行您的应用。
使用启动脚本初始化实例
您需要一种方法来指示实例下载并运行这些代码。 实例可能拥有对其执行启动或重启操作时会运行的启动脚本。
启动脚本会在实例首次启动时运行。
启动脚本执行以下任务:
安装 Java 11 并将其设为默认版本。
安装并配置 Jetty。
将 Java WAR 文件从 Cloud Storage 存储分区复制到 Jetty 的
webapps
,并将其重命名为root.war
。这将使其成为根 servlet,因此不需要在网址中命名。安装 Cloud Logging 代理,并将其配置为监控应用日志。这表示,您在本教程前面步骤中配置的日志记录将上传,就像是您在使用 App Engine 柔性环境一样。
创建和配置 Compute Engine 实例
创建 Compute Engine 实例:
gcloud compute instances create my-app-instance
将
--image-family=debian-10
--image-project=debian-cloud
--machine-type=g1-small
--scopes userinfo-email,cloud-platform
--metadata-from-file startup-script=gce/startup-script.sh
--zone YOUR_ZONE
--tags http-serverYOUR_ZONE
替换为开发地区,如us-central1-a
。如需详细了解区域和地区,请参阅地理位置和区域。这会创建一个新实例,允许其访问 Google Cloud 服务并运行您的启动脚本。实例名称为
my-app-instance
。检查实例创建的进度:
gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
启动脚本完成后,您会看到以下消息:
startup-script: INFO Finished running startup scripts.
创建一条防火墙规则以允许流量进入您的实例:
gcloud compute firewall-rules create default-allow-http-80 \ --allow tcp:80 \ --source-ranges 0.0.0.0/0 \ --target-tags http-server \ --description "Allow port 80 access to http-server"
获取您的实例的外部 IP 地址:
gcloud compute instances list
要查看应用的运行情况,请在浏览器中输入以下网址:
http://YOUR_INSTANCE_IP
将
YOUR_INSTANCE_IP
替换为实例的外部 IP 地址。
管理和监控实例
您可以使用 Cloud Console 来监控和管理您的实例。
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
- 如需查看 Compute Engine 资源生成的所有日志,请转到日志浏览器页面。
转到日志浏览器
Cloud Logging 会自动配置为从各种常用服务(包括
syslog
)收集日志。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
逐个删除资源
gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all gcloud compute firewall-rules delete default-allow-http-80
后续步骤
探索有关 Google Cloud 的参考架构、图表、教程和最佳做法。查看我们的云架构中心。
如需了解构建应用所需的其他 Java 资源,请参阅以下内容:
- 转到 Compute Engine > 实例组以管理和监控实例组部署。
- 转到网络服务 > 负载平衡以管理负载平衡配置,包括网址映射和后端服务。
了解其他 Google Cloud 服务。