0

我一直在关注 Fargate/docker 教程:https ://medium.com/containers-on-aws/building-a-socket-io-chat-app-and-deploying-it-using-aws-fargate- 86fd7cbce13f

这是我的 Dockerfile

FROM mhart/alpine-node:15 AS build
WORKDIR /srv
ADD package.json .
RUN yarn
ADD . .

FROM mhart/alpine-node:base-9
COPY --from=build /srv .
EXPOSE 3000
CMD ["node", "index.js"]

我有两个 Fargate 堆栈

production是从 AWS CloudFormation公共服务模板创建的

chat是从 AWS CloudFormation public-vpc 模板创建的,其中包含教程中的一些参数替换:

在此处输入图像描述

生产堆栈公开一个有效的 ExternalUrl 输出参数

在此处输入图像描述

当我打开 URL 时,我可以看到索引的初始加载成功

在此处输入图像描述

但资源以 502(坏网关)响应

在此处输入图像描述

如果我刷新 URL,索引也会抛出错误

在此处输入图像描述

我是 AWS 和 Fargate 的新手。是否有我应该检查的服务器日志?这可能是我用于设置的任一模板 (public-vpc.yml或) 的问题吗?public-service.yml任何帮助表示赞赏 - 谢谢。

4

2 回答 2

0

看起来您的运行状况检查失败,因此正在停止实例。您可以通过导航来验证这一点ECS -> Clusters -> (Cluster) -> (Service) -> Tasks -> Stopped- 这将显示最近停止的容器列表及其原因。

我还没有挖掘过 CloudFormation,但我敢打赌,健康检查到容器端口的映射是错误的。

于 2020-12-29T04:24:14.090 回答
0

谜团已揭开!感谢@Marcin 和@cynicaljoy 的帮助。@cynicaljoy,我检查了 ECS 集群状态,但没有任何异常——聊天任务正在运行。

@Marcin,我按照您的指示重新创建了堆栈和应用程序。现在它起作用了!我的问题是第一次忽略了在我的所有 AWS 命令​​中匹配正确的区域。有些是运行的,有些是运行us-west-1us-west-2。一旦我匹配了这些,网关问题就消失了。

于 2020-12-29T18:51:50.597 回答