无法从部署的AWS Fargate获取响应?技术排查求助
问题:ECS Fargate部署Spring Boot应用无法访问接口
环境背景
- 已按照AWS控制台文档《How to create Task Definition using AWS console》完成集群与Task Definition创建
- 使用ECR中的镜像启动任务,容器运行状态正常,可在CloudWatch及ECS控制台查看日志,任务配置页面显示有公网IP
- 采用Fargate模式部署,Task Definition关联了带托管策略的角色
AwsTutorialECS_FullAccess_Role,执行角色为ecsTaskExecutionRole,操作账号拥有AdministratorAccess权限
Spring Boot应用代码
@SpringBootApplication @RestController @RequestMapping("aws") public class AwsTutorialApplication { public static void main(String[] args) { SpringApplication.run(AwsTutorialApplication.class, args); } @GetMapping("/hello") public String helloAws(){ return "Hello from AWS!"; } }
尝试的访问地址(均无响应)
http://publicIp:8080/aws/hello http://publicIp:80/aws/hello http://publicIp/aws/hello
Task Definition配置详情
{ "taskDefinitionArn": "arn:aws:ecs:eu-central-1:myAccount:task-definition/NewTaskDefinition:1", "containerDefinitions": [ { "name": "spring-boot-container", "image": "myAcc.dkr.ecr.eu-central-1.amazonaws.com/aws-tutorial:latest", "cpu": 0, "memory": 3072, "portMappings": [ { "name": "spring-boot-container-8080-tcp", "containerPort": 8080, "hostPort": 8080, "protocol": "tcp", "appProtocol": "http" } ], "essential": true, "environment": [], "environmentFiles": [], "mountPoints": [], "volumesFrom": [], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/NewTaskDefinition", "awslogs-region": "eu-central-1", "awslogs-stream-prefix": "ecs" } } } ], "family": "NewTaskDefinition", "taskRoleArn": "arn:aws:iam::myAccount:role/AwsTutorialECS_FullAccess_Role", "executionRoleArn": "arn:aws:iam::myAccount:role/ecsTaskExecutionRole", "networkMode": "awsvpc", "revision": 1, "volumes": [], "status": "ACTIVE", "requiresAttributes": [ { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "ecs.capability.execution-role-awslogs" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" }, { "name": "ecs.capability.execution-role-ecr-pull" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "ecs.capability.task-eni" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29" } ], "placementConstraints": [], "compatibilities": [ "EC2", "FARGATE" ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072", "runtimePlatform": { "cpuArchitecture": "X86_64", "operatingSystemFamily": "LINUX" }, "registeredAt": "2023-03-21T18:20:52.034Z", "registeredBy": "arn:aws:iam::accountiD:user/myUserName", "tags": [] }
更新信息
- 已根据安全组相关建议删除并重新创建Task Definition与任务,问题依旧
- 已通过
@CrossOrigin注解及以下配置禁用CORS:
@Configuration public class Config implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedMethods("*"); } }
疑问
为何无法获取接口响应?
内容的提问来源于stack exchange,提问作者Wrapper
相关产品推荐
相关产品推荐

