Java AWS ECS中使用Payara Micro重启无限实例
我正在用AWS做我的第一步,想从一个在ECS上运行的非常简单的应用开始。因此,我做了亚马逊提供的指南。Fargate和EC2都工作得很好,我能够运行示例应用程序。在第二步中,除了任务定义之外,我还一个接一个地完成了教程中的所有设置。工作也很好 然后我想部署我自己的Docker映像。因此,我将图像上传到ECR并创建了一个新的任务定义。Docker镜像源于Payara Micro镜像,只包含最简单的web资源:只有两个Java类和一个maven构建 应用程序类:Java AWS ECS中使用Payara Micro重启无限实例,java,amazon-web-services,docker,jax-rs,amazon-ecs,Java,Amazon Web Services,Docker,Jax Rs,Amazon Ecs,我正在用AWS做我的第一步,想从一个在ECS上运行的非常简单的应用开始。因此,我做了亚马逊提供的指南。Fargate和EC2都工作得很好,我能够运行示例应用程序。在第二步中,除了任务定义之外,我还一个接一个地完成了教程中的所有设置。工作也很好 然后我想部署我自己的Docker映像。因此,我将图像上传到ECR并创建了一个新的任务定义。Docker镜像源于Payara Micro镜像,只包含最简单的web资源:只有两个Java类和一个maven构建 应用程序类: @ApplicationPath(“
@ApplicationPath(“/Hello”)
公共类HelloApplication扩展了应用程序{}
资源类:
@Path(“/Resource”)
公共类HelloResource{
@得到
公共响应getHello(){
返回Response.ok(“Hello”).build();
}
}
pom.xml文件:
4.0.0
com.hueff
附件5
战争
0.1
附件5
org.eclipse.com文件
微文件
3.3
聚甲醛
假如
org.apache.maven.plugins
maven编译器插件
3.5.1
1.8
1.8
org.apache.maven.plugins
maven战争插件
src\main\webapp\WEB-INF\WEB.xml
我的Dockerfile:
FROM payara/micro
EXPOSE 8080
COPY ./target/App5-0.1.war $DEPLOY_DIR
CMD ["--deploymentDir", "/opt/payara/deployments", "--contextroot", "App5"]
当我在AWS中创建一个使用映像的ECS服务时,一个EC2实例被初始化,并出现一个健康状态。如果我尝试访问AWS负载平衡器,我要么得到404,要么能够检索资源
但在几秒钟或1-2分钟后,实例进入“排水”状态并关闭。然后我得到502、503或504个响应,直到出现一个新实例。然后我再次得到404或200响应,直到该实例进入排水状态并关闭。这将成为一个无限循环。大多数情况下,对负载平衡器的请求都会使用500er范围内的代码进行应答。但我也得到了很多404代码,有时是200代码
我想404是可以的,因为它们是从Payara微图像提供的。因为我很少收到200条回复,所以我认为我的一般设置(VPC、子网、Internet网关、ACL、安全组等)很好。因此,我将404添加到运行状况检查中可接受的代码中,因为在初始化期间,404将在归档部署到Payara Micro之前一直存在
但是,某些因素导致实例一旦启动并运行,就会进入耗尽状态。因为我是一个完全的初学者,我只能从这一点上尝试和错误。你们知道是什么导致了实例关闭,或者可以在某些方面提示我吗
Docker映像在我的本地机器上运行得非常好
亲切问候,
马克