如何解决无限实例使用AWS ECS中的Payara Micro重新启动
我正在使用AWS迈出第一步,并希望从在ECS中运行的非常简单的应用程序开始。因此,我做了Amazon提供的Getting Started指南。 (Fargate和EC2)都工作正常,我能够运行示例应用程序。除任务定义外,我还一步一步地自己完成了本教程中的所有设置。也很好。
然后,我想部署自己的Docker映像。因此,我将图像上传到ECR并创建了新的任务定义。 Docker镜像源自Payara Micro镜像,仅包含最少的Web资源:只有两个Java类和一个maven构建。
应用程序类:
@ApplicationPath("/Hello")
public class HelloApplication extends Application {}
资源类:
@Path("/Resource")
public class HelloResource {
@GET
public Response getHello() {
return Response.ok("Hello").build();
}
}
pom.xml:
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hueff</groupId>
<artifactId>App5</artifactId>
<packaging>war</packaging>
<version>0.1</version>
<name>App5</name>
<dependencies>
<dependency>
<groupId>org.eclipse.microprofile</groupId>
<artifactId>microprofile</artifactId>
<version>3.3</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>src\main\webapp\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的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 Micro图像提供的。而且因为我很少收到200条回复,所以我认为我的常规设置(VPC,子网,Internet网关,ACL,安全组等)很好。因此,我将404添加到了运行状况检查中的可接受代码中,因为在初始化过程中,通常需要404,直到将存档部署到Payara Micro中为止。
但是一旦实例启动并运行,就会导致实例进入耗尽状态。因为我是一个初学者,所以从那时开始,我只能反复试验。你们是否知道是什么原因导致实例关闭或可以向我暗示某个方向?
Docker镜像在我的本地计算机上运行良好。
亲切的问候,
马克
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。