当它们都是 ECS Fargate 中同一任务中的容器 运行 时,如何从我的 UI 向我的 API 发出请求

How can I make a request to my API from my UI when they are both containers running in the same task in ECS Fargate

我已经建立了一个集群,其中有 1 个服务包含 1 个任务。该任务包含 2 个 docker 个容器。一个用于我的 UI(post 3000),一个用于我的 API(端口 8080)。我可以通过 [public-ip]:3000[public-ip]:8080.

访问这两个端口

然后我设置了一个指向该服务的 Application Load Balancer。它指向这些 target group:

https://pasteboard.co/JFQfvD9.png

所以现在我 CAN 通过负载均衡器的 DNS name 到达 UI 但是应用程序进行的 API 调用总是失败 404.

这是对API

的浏览器网络请求

https://pasteboard.co/JFQjISle.png

值得注意 目标群体只去port 3000。我会假设我也需要在这里定位 port 8080 吗?它们也不健康并且不断重启,但这是无法找到我的健康检查端点 8080/api/ping.

的副作用

我不太确定哪里出错了。

如有任何帮助,我们将不胜感激。

编辑

安全组 https://pasteboard.co/JFRBE80.png

ALB https://pasteboard.co/JFRHgKU.png

TG 健康检查设置 https://pasteboard.co/JFRIkRn.png

ECS 服务的 ALB 信息 https://pasteboard.co/JFRXYim.png

正在尝试更新 ECS 服务 https://pasteboard.co/JFRYyjz.png

新建服务,只能添加1个容器做负载均衡 https://pasteboard.co/JFS0yDW.png

根据评论。

问题是由负载均衡器目标组中的端口配置错误引起的。

解决方案是正确设置端口,使其与 ecs 服务中使用的端口相匹配。