Shopify应用模板部署至ECS失败问题排查求助
解决Shopify应用ECS部署+ALB健康检查失败问题
问题根源
Shopify CLI生成的Node.js/Express应用,默认路由都会经过ensureInstalledOnShop中间件,该中间件强制要求请求携带shop查询参数。但ALB的健康检查请求是无参数的基础请求,因此触发错误导致健康检查失败。
具体解决步骤
1. 添加独立健康检查路由
在Express应用中新增一个不受Shopify中间件拦截的健康检查接口,直接返回成功状态:
// 注意:此路由要放在Shopify认证中间件(如shopify.authenticate.admin)之前 app.get('/health', (req, res) => { res.status(200).send('OK'); });
2. 调整ALB目标组健康检查配置
- 将健康检查路径修改为
/health - 端口设置为容器暴露的8081
- 调整健康检查参数(如:正常阈值2次、异常阈值2次、间隔5秒),给容器足够的启动初始化时间
3. 验证容器服务监听配置
确保Express应用监听0.0.0.0而非仅localhost,否则ALB无法访问容器内服务:
app.listen(8081, '0.0.0.0', () => { console.log('应用运行在8081端口'); });
可进入ECS容器内部,执行curl localhost:8081/health验证路由是否正常返回200。
4. 检查网络权限
确认ECS任务的安全组允许ALB所在安全组访问8081端口,避免网络层面拦截健康检查请求。
内容的提问来源于stack exchange,提问作者behemoth3752
相关产品推荐
相关产品推荐

