AWS AppConfig Java样本
V2-2024
概述
该项目是用于代码转换的Amazon Q开发人员代理的演示。这是一个基于Java 1.8的微服务应用程序,它根据使用AWS SDK中存储在AWS AppConfig服务中的配置显示了本月的免费电影列表。该应用程序首先是在2020年开放的,并使用了诸如Spring Boot 2.X,Log4J 2.13.x,Mockito 1.X,Javax和Junit 4等库的遗留版本。
代码转换的Amazon Q开发人员代理可以升级文件的代码语言版本。您可以在Jetbrains和Visual Studio代码中的项目或整个工作区中转换一个模块。 Amazon Q首先在源语言版本中构建您的代码,并验证它具有转换代码所需的信息。在Amazon Q成功地转换您的代码之后,您将验证并接受集成开发环境(IDE)的更改。有关更多信息,请参阅代码转换的Amazon Q开发人员如何工作。目前,Amazon Q可以将Java 8和Java 11代码升级为Java 17代码。
请参阅“入门指南”和3种Amazon Q Developer用于代码转换的方式如何加速您的Java升级。
安装说明
当地的
- 在本地IDE中编译应用程序
- 打开一个新的终端和类型
java -jar .targetmovie-service-0.1.0.jar - 请按照下面的AWS部分中的步骤1进行操作,以在默认AWS帐户配置文件中设置AppConfig配置
- 打开浏览器,然后访问http:// localhost:8080/movie/getMovies
- 您应该可以看到付费电影的列表
AWS
步骤1:在AWS AppConfig中创建应用程序,环境和配置配置文件
- 打开AWS系统管理器控制台。
- 在左导航窗格中,选择AWS AppConfig,然后单击“开始”
- 如果出现AWS AppConfig欢迎页面,请单击左导航上的创建应用程序。
- 为了姓名,请输入应用程序的名称。 ( MyContainerApplication )您可以添加可选描述并将标签应用于应用程序。选择创建应用程序。
- 创建应用程序后,您将被指向带有环境和配置配置文件的页面,然后选择“创建环境”,然后输入一个名称( MyContainerApplicationProductionEnvironments )和对环境的可选描述。您还可以选择添加标签并为此环境配置Amazon CloudWatch警报。
- 在顶部导航中,选择应用程序名称,然后在“配置配置文件”和“特征标志”选项卡上,选择“创建配置配置文件”和“自由形式配置”。
- 输入一个名称( MyContainerApplicationConfigurationProfile )和配置配置文件的可选描述。
- 在配置源下,选择AWS AppConfig托管configuration.under content,选择JSON,粘贴以下内容,然后选择下一个。
{
"movies": [
{
"id": 1,
"movieName": "The Shawshank Redemption"
},
{
"id": 2,
"movieName": "City of God"
},
{
"id": 3,
"movieName": "Memento"
},
{
"id": 4,
"movieName": "The Intouchables"
},
{
"id": 5,
"movieName": "Stardust"
},
{
"id": 6,
"movieName": "Apocalypto"
},
{
"id": 7,
"movieName": "Taxi Driver"
},
{
"id": 8,
"movieName": "No Country for Old Men"
},
{
"id": 9,
"movieName": "Planet 51"
},
{
"id": 10,
"movieName": "The Beach"
}
]
}
- (可选)您可以添加验证器来验证配置。有关信息,请检查有关AWS AppConfig文档中验证器的信息。
- 选择创建配置配置文件。
- 选择“开始部署”。
- 选择环境,托管配置版本,部署策略和可选描述以开始部署过程。
- 要创建自定义部署策略,请选择创建部署策略。或选择AWS AppConfig提供的预定义部署策略之一。有关更多信息,请在AWS AppConfig文档中检查创建部署策略。出于本文的目的,我们选择了AppConfig.linear50percentevery 30秒的部署策略。
注意:根据您选择的部署策略,此操作可能需要几分钟才能完成。部署状态完成后,该配置将立即用于应用程序。
** V1- 2020 **
注意:仅当您想尝试AppConnfig相关的功能时,才使用此版本。
概述
这是AWS AppConfig Java应用程序的演示,如使用AWS AppConfig的Blog Post应用程序配置部署到容器工作负载中所述。该演示显示了如何将Java Microservices应用程序与AWS AppConfig服务集成在一起,以及实现内存缓存以有效管理应用程序配置。
AWS AppConfig可帮助AWS客户以EC2实例,容器,AWS Lambda,移动应用程序,IoT设备和本地服务器的应用程序快速推出应用程序配置。
此示例代码说明了
- 如何将应用程序配置与容器化应用程序的应用程序代码分开。
- 使用AWS AppConfig来管理和部署应用程序配置。
- 如何在容器化应用程序中自动化并有效地管理应用程序配置。
该演示使用云形式模板来部署Amazon弹性容器服务群集和AWS Fargate任务。用户将克隆此存储库,构建Docker映像并将其推向Amazon弹性容器注册表,并与AWS AppConfig服务进行交互。
该应用程序内置了一个缓存层,以缓存AWS AppConfig服务的响应。获取配置值的后续调用首先检查缓存,并返回缓存中的响应。如果缓存为空,则可以调用AWS AppConfig API获取值。缓存到期基于属性中的TTL设置。
安装说明
当地的
- 在本地IDE中编译应用程序
- 打开一个新的终端和类型
java -jar .targetmovie-service-0.1.0.jar - 请按照下面的AWS部分中的步骤1进行操作,以在默认AWS帐户配置文件中设置AppConfig配置
- 打开浏览器,然后访问http:// localhost:8080/movie/getMovies
- 您应该能够看到5部付费电影的列表
AWS
步骤1:在AWS AppConfig中创建应用程序,环境和配置配置文件
- 打开AWS系统管理器控制台。
- 在左导航窗格中,选择AWS AppConfig。
- 如果出现AWS AppConfig欢迎页面,请单击“创建配置数据”。否则,单击创建应用程序。
- 为了姓名,请输入应用程序的名称。 ( MyContainerApplication )您可以添加可选描述并将标签应用于应用程序。选择创建应用程序。
- 创建应用程序后,您将被指向带有环境和配置配置文件的页面,然后选择“创建环境”,然后输入一个名称( MyContainerApplicationProductionEnvironments )和对环境的可选描述。您还可以选择添加标签并为此环境配置Amazon CloudWatch警报。
- 在顶部导航中,选择应用程序名称,然后在“配置配置文件”选项卡上,选择“创建配置配置文件”。
- 输入一个名称( MyContainerApplicationConfigurationProfile )和配置配置文件的可选描述。
- 在配置源下,选择AWS AppConfig托管configuration.under content,选择JSON,粘贴以下内容,然后选择下一个。
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (可选)您可以添加验证器来验证配置。有关信息,请检查有关AWS AppConfig文档中验证器的信息。
- 选择创建配置配置文件。
- 选择“开始部署”。
- 选择环境,托管配置版本,部署策略和可选描述以开始部署过程。
- 要创建自定义部署策略,请选择创建部署策略。或选择AWS AppConfig提供的预定义部署策略之一。有关更多信息,请在AWS AppConfig文档中检查创建部署策略。出于本文的目的,我们选择了AppConfig.linear50percentevery 30秒的部署策略。
注意:根据您选择的部署策略,此操作可能需要几分钟才能完成。部署状态完成后,该配置将立即用于应用程序。
步骤2:使用AMAZON ECS和Amazon ECR设置基本应用程序以及使用AWS CloudFormation
- 打开云形式控制台,然后单击“创建堆栈”,选择“使用新资源”选项。
- 在下一个屏幕中,在“指定模板”部分下,选择“上传模板文件”,然后提供您从repo /templates/ecs-cluster.yml下载的文件。
- 单击下一步,给堆栈一个名称,例如“ ecscluster-dev”,然后选择dev作为环境参数的值。clicknext,可选地定义您的标签,然后再次单击下一个。在最后一个屏幕上,不要忘记在“功能”部分中打勾复选框,最后单击“创建堆栈”按钮。
步骤3:克隆代码存储库,创建Docker容器并发布到Amazon ECR
- git克隆这个存储库
- 导航到Amazon弹性容器注册表,单击您创建的存储库,然后单击“视图”推送命令。
- 导航到命令提示符中的代码存储库,并执行推送命令以上上传项目。
- 上传完成后,请在存储库中复制图像的URL。将此URL用作输入参数(ImageUrl),以与下一节中提到的AWS云形式模板。
步骤4:使用AWS CloudFormation创建Fargate任务并将容器应用程序部署到AWS Fargate上的Amazon ECS
- 打开云形式控制台,然后单击“创建堆栈”,选择“使用新资源”选项。
- 在下一个屏幕中,在“指定模板”部分下,选择“上传模板文件”,然后提供您从repo /templates/fargate-task.yml下载的文件。
- 单击“下一步”,为“ Fargate-Task-dev”之类的堆栈命名。选择“开发”作为环境参数的值。
- 提供图像URL在上一个步骤中为ImageUrl参数获得,并将其余参数留为默认情况。
- 单击“下一步”,然后选择定义您的标签。再次单击下一个。在最后一个屏幕上,不要忘记在“功能”部分中打勾复选框,最后单击“创建堆栈”按钮。
步骤5:验证已部署的应用程序,更新AppConfig配置数据并部署更新的配置
- 导航到AWS CloudFormation Console并打开您创建的Fargate-Task-Dev堆栈
- 单击输出并复制LoadBalancer的externalurl
- 通过将外部URL用于负载平衡器来验证应用程序。 http:// externalurl/tovers/getMovies
- 接下来,我们将更改AWS AppConfig中的配置值,并查看如何在容器应用程序中反映其。
- 打开AWS AppConfig控制台,单击您的应用程序,然后转到配置配置文件选项卡,然后单击您创建的配置配置文件
- 单击在托管配置版本下创建的创建,这将打开一个新屏幕,您可以在其中编辑配置数据。
- 编辑配置值,然后单击创建托管的配置版本按钮。
- 接下来,单击“开始部署”,然后选择环境,最新的托管配置版本,部署策略和可选描述以开始部署过程。
- 部署完成后,再次访问应用程序URL,以立即查看更改。
- 请注意,此更改不需要重新启动容器应用程序,因为该应用程序在随后的呼叫中检索了AWS AppConfig的更新值。
清理
在整个过程中删除在此过程中创建的所有资源,并防止额外的成本。
AppConfig
- 托管配置
- 配置配置文件
- 环境
- 应用
基本容器应用程序和Fargate任务
- 导航到AWS CloudFormation Console
- 选择fargate-task-dev堆栈,然后单击删除
- 选择EcsCluster-DEV堆栈,然后单击DELETE
执照
该示例代码已根据MIT-0许可证获得许可。请参阅许可证文件。