适用于 App Engine 标准环境的 Java 8 快速入门

本快速入门介绍如何在 App Engine 上部署一个示例应用。如果您想要了解如何为 App Engine 编写应用代码,请参阅构建应用

费用

运行本指南不会产生任何相关费用。单独运行此示例应用不会超出您的免费配额

准备工作

本快速入门假定您已安装 Java SE 8 开发工具包 (JDK)

运行和部署此示例之前,请执行以下步骤:

  1. 使用 GCP Console 创建新的 App Engine 应用:
    转到 App Engine

    系统提示时,选择您希望 App Engine 应用所在的区域

  2. 安装并配置以下前提条件:
    1. 下载并安装 git
    2. 下载并安装 Google Cloud SDK:
      下载 SDK
    3. 配置 gcloud 命令行环境:
      gcloud init
      gcloud auth application-default login
    4. 安装 App Engine 组件:
       gcloud components install app-engine-java
    5. 更新到最新版 Cloud SDK 和所有组件:
       gcloud components update 
    6. 安装 Maven。本快速入门使用 Apache Maven 3.5 或更高版本来构建、运行和部署示例应用。如需详细了解如何安装 Maven,请参阅使用 Apache Maven 和 App Engine 插件

App Engine 位置

App Engine 是区域级的,即运行应用的基础架构位于特定区域,并且由 Google 托管,以便在此区域内的所有地区以冗余方式提供。

选择要在哪个区域运行应用时,能否满足您的延迟时间、可用性或耐用性需求是需要考虑的几个主要因素。您通常可以选择离应用用户最近的区域,但应考虑应用使用的其他 GCP 产品和服务所在的位置。跨多个位置使用服务可能会影响应用的延迟及价格

App Engine 现在以下区域可用:

  • northamerica-northeast1(蒙特利尔)
  • us-central(爱荷华州)
  • us-west2(洛杉矶)
  • us-east1(南卡罗来纳州)
  • us-east4(北弗吉尼亚)
  • southamerica-east1(圣保罗)*
  • europe-west(比利时)
  • europe-west2(伦敦)
  • europe-west3(法兰克福)
  • asia-northeast1(东京)
  • asia-east2(香港)
  • asia-south1(孟买)
  • australia-southeast1(悉尼)

*对于使用圣保罗这一区域的客户,所有区域产品 SLA 仍继续有效。但是,跨北美和南美的多区域和跨区域功能的可用性或性能可能会暂时降低。

应用的区域一经设置,便无法更改。

如果您已经创建 App Engine 应用,则可以通过运行 gcloud app describe 命令或打开 来查看该区域。您的 App Engine 应用所在的区域列在 http://[YOUR_PROJECT_ID].appspot.com 下。

下载 Hello World 应用

我们创建了一个用于 Java 8 运行时的 Hello World 简单应用,您可以快速了解如何将应用部署到 App Engine 标准环境中。

下载示例应用并导航到应用目录:

  1. 将 Hello World 示例应用代码库克隆到本地计算机:

    git clone https://github.com/GoogleCloudPlatform/getting-started-java.git
    

    或者,下载该示例的 zip 文件并将其解压缩。

  2. 更改为包含示例代码的目录:

    cd getting-started-java/appengine-standard-java8/helloworld
    

在本地计算机上运行 Hello World

要在本地计算机上运行 Hello World 应用,请执行以下操作:

  1. 使用 Jetty Maven 插件启动本地 Jetty 网络服务器:

    mvn appengine:run
    
  2. 在网络浏览器中,访问以下地址:

    http://localhost:8080
    
  3. 您可以从页面中显示的示例应用中看到 Hello World 消息。

  4. 在终端窗口中,按 Ctrl+C 退出网络服务器。

在 App Engine 上部署和运行 Hello World

要将应用部署到 App Engine 标准环境,请执行以下操作:

  1. 通过从 getting-started-java/appengine-standard-java8/helloworld 目录运行以下命令来部署 Hello World 应用:
    mvn appengine:deploy
    等待部署完成。
  2. 通过运行以下命令,启动浏览器并在 http://YOUR_PROJECT_ID.appspot.com 中查看应用:
    gcloud app browse

此时,在 App Engine 实例上运行的网络服务器提供显示 Hello World 消息的页面。

恭喜! 您已将第一个 Java 8 应用部署到了 App Engine 标准环境!

如需了解清理相关信息以及可执行的后续步骤的链接,请参阅以下部分。

后续步骤

了解整个平台

了解如何开发和部署 App Engine 应用后,您现在可以轻松查看 Google Cloud Platform 的其余部分。您已经安装了 Google Cloud SDK,这为您提供了与 Google Cloud SQL、Google Cloud Storage、Google Cloud Datastore 等产品交互的工具。有关如何创建使用整个平台(而不仅仅是 App Engine)的应用的操作指南,请参阅有关创建 Bookshelf 应用的快速入门。

了解 App Engine 标准环境

以下主题有助于您继续了解 App Engine。

Hello World 代码审查

Hello World 是最简单的 App Engine 应用,因为它只包含一项服务,只有一个版本,并且所有代码都位于应用的根目录中。本部分详细介绍每个应用文件。

HelloAppEngine.java

HelloServlet.java 文件指定一个网址模式,用来说明应用侦听请求的位置,并使用“Hello World”消息响应任何请求。

import com.google.appengine.api.utils.SystemProperty;

import java.io.IOException;
import java.util.Properties;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// With @WebServlet annotation the webapp/WEB-INF/web.xml is no longer required.
@WebServlet(name = "HelloAppEngine", value = "/hello")
public class HelloAppEngine extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    Properties properties = System.getProperties();

    response.setContentType("text/plain");
    response.getWriter().println("Hello App Engine - Standard using "
            + SystemProperty.version.get() + " Java "
            + properties.get("java.specification.version"));
  }

  public static String getInfo() {
    return "Version: " + System.getProperty("java.version")
          + " OS: " + System.getProperty("os.name")
          + " User: " + System.getProperty("user.name");
  }

}
  • 如需详细了解 Java 8 运行时的作业方式,请参阅 Java 8 运行时

pom.xml

Hello World 还包含一个 pom.xml 文件,其中包含有关项目的信息(如其依赖项和构建目标),包括使用 Maven 插件所需的行:

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>1.3.1</version>
</plugin>
  • 如需详细了解 pom.xml 文件,请参阅 Maven 文档

appengine-web.xml

appengine-web.xml 文件包含某些必需的设置,例如 <runtime> 元素的 java8 设置,其可指示 App Engine 在 Java 8 运行时中运行此应用:

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
</appengine-web-app>
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Java 版 App Engine 标准环境