

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 更多适用于 Java 的 Elastic Beanstalk 示例应用程序和教程
<a name="java-getstarted"></a>

本节提供额外的应用程序和教程。本主题前面的 [QuickStart 适用于 Java](java-quickstart.md) 和 [QuickStart 在 Tomcat 上使用 Java](tomcat-quickstart.md) 主题将引导您使用 EB CLI 启动示例 Java 应用程序。

要开始使用 Java 应用程序 AWS Elastic Beanstalk，您只需要一个应用程序[源包](applications-sourcebundle.md)，将其作为第一个应用程序版本上传并部署到环境中。创建环境时，Elastic Beanstalk 会分配运行可扩展 Web 应用程序所需的所有 AWS 资源。

## 使用示例 Java 应用程序启动环境
<a name="java-getstarted-samples"></a>

Elastic Beanstalk 为每个平台提供了单页示例应用程序以及更复杂的示例，这些示例展示了 AWS 其他资源的使用情况，例如 Amazon RDS 以及特定于语言或平台的功能以及。 APIs

单一页面示例是您在创建环境时获得的相同代码，无需提供您自身的源代码。更复杂的示例托管在上 GitHub 面，在部署到 Elastic Beanstalk 环境之前，可能需要对其进行编译或构建。

 


**样本**  

|  Name  |  支持的版本  |  环境类型  |  源  |  描述  | 
| --- | --- | --- | --- | --- | 
|  Tomcat（单页）  |  所有 *Tomcat（带 Corretto）*平台分支  |  Web 服务器 工作线程  |   [tomcat.zip](samples/tomcat.zip)   |  配置为仅在网站根目录中显示一个页面 (`index.jsp`) 的 Tomcat Web 应用程序。 对于[工作线程环境](using-features-managing-env-tiers.md)，此示例包含一个 `cron.yaml` 文件，该文件配置一个每分钟调用一次 `scheduled.jsp` 的计划任务。调用 `scheduled.jsp` 时，它会写入 `/tmp/sample-app.log` 处的日志文件。最后，在 `.ebextensions` 中包含一个配置文件，该文件在您请求环境日志时将日志从 `/tmp/` 复制到由 Elastic Beanstalk 读取的位置。 如果您在运行此示例的环境中[启用 X-Ray 集成](environment-configuration-debugging.md)，则应用程序会显示有关 X-Ray 的更多内容，并提供用于生成调试信息（可在 X-Ray 控制台中查看）的选项。  | 
|  Corretto（单页）  |  Corretto 11 Corretto 8  |  Web 服务器  |  [corretto.zip](samples/corretto.zip)  |  使用 `Buildfile` 和 `Procfile` 配置文件的 Corretto 应用程序。 如果您在运行此示例的环境中[启用 X-Ray 集成](environment-configuration-debugging.md)，则应用程序会显示有关 X-Ray 的更多内容，并提供用于生成调试信息（可在 X-Ray 控制台中查看）的选项。  | 
|  Scorekeep  | Java 8 | Web 服务器 | [在 .com 上克隆存储库 GitHub](https://github.com/awslabs/eb-java-scorekeep) |  *Scorekeep* 是一个 RESTful Web API，它使用 Spring 框架提供用于创建和管理用户、会话和游戏的接口。此 API 与通过 HTTP 使用它的 Angular 1.5 Web 应用程序捆绑在一起。 应用程序使用 Java SE 平台的功能下载依赖项和用作构建基础的实例，从而最小化源包的大小。此外，应用程序还包含覆盖默认配置的 nginx 配置文件，以通过代理在端口 80 上静态地为前端 Web 应用程序提供服务，并将针对 `/api` 下路径的请求路由到在 `localhost:5000` 上运行的 API。 Scorekeep 还包含一个 `xray` 分支，它演示了使用 AWS X-Ray检测 Java 应用程序的方法。它显示了使用 servlet 过滤器对传入 HTTP 请求的检测、自动和手动 AWS SDK 客户端检测、记录器配置以及对传出 HTTP 请求和 SQL 客户端的检测。 请参阅自述文件获取说明，或跟随 [AWS X-Ray 入门教程](https://docs.aws.amazon.com/xray/latest/devguide/xray-gettingstarted.html)演练用 X-Ray 检测应用程序的过程。  | 
|  是否有 Snake？  | 使用 Java 8 的 Tomcat 8 | Web 服务器 | [在 .com 上克隆存储库 GitHub](https://github.com/awslabs/eb-tomcat-snakes) |  *它有蛇吗？* 是一款 Tomcat Web 应用程序，它显示了 Elastic Beanstalk 配置文件、亚马逊 RDS、JDBC、PostgreSQL、Servlets、Simple Tag Support、标签文件、Log4J JSPs、Bootstrap 和 Jackson 的使用情况。 此项目的源代码包括最低要求构建脚本，后者将小服务程序和模型汇编入类文件，并将所需文件封装入您可部署至 Elastic Beanstalk 环境的 Web 存档。请参阅项目存储库中的自述文件，浏览完整说明。  | 
| Locust Load Generator | Java 8 | Web 服务器 | [在 .com 上克隆存储库 GitHub](https://github.com/awslabs/eb-locustio-sample) |  您可用于对不同 Elastic Beanstalk 环境中运行的另一个 Web 应用程序进行负载测试的 Web 应用程序。显示 `Buildfile` 和 `Procfile` 文件、DynamoDB 以及 [Locust](http://locust.io/)（一种开放源负载测试工具）的使用。  | 

按照以下步骤下载任何示例应用程序并将其部署到 Elastic Beanstalk：

**使用应用程序启动环境（控制台）**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **应用程序**。在列表中选择一个现有的应用程序。您还可以选择按照 [管理 应用程序](applications.md) 中的说明创建一个。

1. 在应用程序概述页面上，选择**创建新环境**。

   这将启动 **Create environment**（创建环境）向导。该向导提供了一组创建新环境的步骤。

1. 对于**环境层**，选择 **Web 服务器环境**或**工作线程环境**[环境层](concepts.md#concepts-tier)。环境的层创建后无法更改。
**注意**  
[.NET on Windows Server 平台](create_deploy_NET.md)不支持工作线程环境层。

   根据您之前选择的应用程序，提供默认**应用程序信息**字段。

   在**环境信息**分组中，根据应用程序名称提供**环境名称**默认值。如果您更喜欢不同的环境名称，则可以在字段中输入其他值。您可以选择输入**域**名；否则 Elastic Beanstalk 会自动生成值。您还可以选择输入**环境描述**。

1. 对于**平台**，选择与应用程序使用的语言匹配的平台和平台分支。
**注意**  
Elastic Beanstalk 支持列出的大多数平台的多个[版本](concepts.platforms.md)。默认情况下，此控制台将为您选择的平台和平台分支选择推荐版本。如果您的应用程序需要其他版本，您可以在此处选择该版本。有关支持的平台版本的信息，请参阅 [Elastic Beanstalk 支持的平台](concepts.platforms.md)。

1. 对于**应用程序代码**，有几种选择可供您考虑。
   + 要启动默认示例应用程序而不提供源代码，请选择**示例应用程序**。此操作会选择 Elastic Beanstalk 为您之前选择的平台提供的单页应用程序。
   + 如果您从本指南下载了示例应用程序，或您有自己的应用程序源代码，请执行下面的步骤。

     1. 选择**上传代码**。

     1. 接下来选择**本地文件**，然后在**上传应用程序**下，选择**选择文件**。

     1. 您的客户端计算机操作系统将会显示一个界面来选择已下载的本地文件。选择源包文件并继续。

1. **预设**的选择取决于环境的用途。
   + 如果您要创建用来了解 Elastic Beanstalk 的示例环境或开发环境，请选择**单一实例（符合免费套餐资格）**。
   + 如果您要创建生产环境或用来进一步了解负载均衡的环境，请从**高可用性**选项中选择其一。

1. 选择**下一步**。

**配置服务访问权限**  
接下来，您需要两个角色。*服务角色*允许 Elastic Beanstalk 监控您的 EC2 实例并升级您的环境平台。*EC2 实例配置文件*角色允许执行诸如写入日志和与其他服务交互之类的任务。

**创建或选择服务角色**

1. 如果您之前创建了**服务角色**并想选择现有的角色，请从**服务角色**下拉列表中选择该值，然后跳过创建服务角色的其余步骤。

1. 如果未列出**服务角色**的任何值，或者您想创建一个新的值，请继续执行后续步骤。

1. 对于**服务角色**，选择**创建角色**。

1. 在**可信实体类型**中选择 **AWS 服务**。

1. 对于**使用案例**，选择 **Elastic Beanstalk – 环境**。

1. 选择**下一步**。

1. 确认**权限策略**包括以下内容，然后选择**下一步**：
   + `AWSElasticBeanstalkEnhancedHealth`
   + `AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy`

1. 选择**创建角色**。

1. 返回到**配置服务访问权限**选项卡，刷新列表，然后选择新创建的服务角色。

**创建或选择 EC2 实例配置文件**

1. 如果您之前创建了 **EC2 实例配置文件**并想选择现有的 EC2 实例配置文件，请从 **EC2 实例配置文件**下拉列表中选择该值，然后跳过创建 EC2 实例配置文件的其余步骤。

1. 如果未列出 **EC2 实例配置文件**的任何值，或者您想创建一个新的值，请继续执行后续步骤。

1. 选择**创建角色**。

1. 在**可信实体类型**中选择 **AWS 服务**。

1. 对于**使用案例**，选择 **Elastic Beanstalk – 计算**。

1. 选择**下一步**。

1. 确认**权限策略**包括以下内容，然后选择**下一步**：
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

1. 选择**创建角色**。

1. 返回**配置服务访问权限**选项卡，刷新列表，然后选择新创建的 EC2 实例配置文件。

**完成应用程序的配置和创建**

1. （可选）如果您之前创建了 EC2 密钥对，则可以从 **EC2 密钥对**字段下拉列表中选择它。您可以使用它安全地登录到 Elastic Beanstalk 为您的应用程序预置的 Amazon EC2 实例。如果跳过此步骤，您可以在创建环境后始终创建并分配 EC2 密钥对。有关更多信息，请参阅 [EC2 key pair](using-features.managing.security.md#using-features.managing.security.keypair)。

1. 在 **Configure service access**（配置服务访问）页面上选择 **Skip to Review**（跳至审核）。

1. **Review**（审核）页面将显示所有选择的摘要。

   要进一步自定义您的环境，请在包含要配置的任何项目的步骤旁边选择 **Edit**（编辑）。只能在创建环境期间设置下列选项：
   + 环境名称
   + 域名
   + 平台版本
   + 处理器
   + 负载均衡器类型
   + 套餐

   可在环境创建后更改下列设置，但它们需要配置新实例或其他资源并且应用更改可能需要很长的时间：
   + 实例类型、根卷、key pair 和 AWS Identity and Access Management (IAM) 角色
   + 内部 Amazon RDS 数据库
   + VPC

   有关所有可用设置的详细信息，请参阅 [创建新环境向导](environments-create-wizard.md)。

1. 选择页面底部的 **Submit**（提交）以初始化新环境的创建。

## 后续步骤
<a name="java-getstarted-next"></a>

有了运行应用程序的环境以后，您随时可以[部署新的应用程序版本](using-features.deploy-existing-version.md)或完全不同的应用程序。部署新应用程序版本非常快，因为不需要配置或重新启动 EC2 实例。

在您部署了一两个示例应用程序并准备好开始在本地开发和运行 Java 应用程序以后，请参阅[下一节](java-development-environment.md)以使用所有需要的工具和库设置 Java 开发环境。