基于路径的AWS App Runner路由配置求助:ALB无法添加服务至目标组
解决AWS ALB无法路由到App Runner服务的方案
方案1:配置App Runner VPC接入,直接将ENI加入ALB目标组
这是最贴合ALB原生用法的方案:
- 打开App Runner控制台,找到你的book-service和user-service,编辑服务配置,开启VPC接入,选好你的VPC、子网和安全组(确保安全组允许ALB所在VPC的流量访问)
- 配置完成后,App Runner会在你指定的子网里生成弹性网络接口(ENI)
- 回到ALB控制台,分别给两个服务创建TCP/HTTPS类型的目标组,目标类型选实例(实际选择对应ENI即可),把App Runner生成的ENI加进对应目标组
- 最后在ALB上设置路径规则:
- 路径
/user/*转发到user-service的目标组 - 路径
/book/*转发到book-service的目标组
这样就能直接实现路径路由需求。
- 路径
方案2:用Lambda做ALB的反向代理
如果不想改动App Runner的现有配置,这个方案适合快速验证POC:
- 写个简单的Lambda函数,逻辑直白:接收ALB的请求,判断路径前缀:
- 前缀为
/user时,转发到https://user.myregion.awsapprunner.com/user(注意保留后续路径参数) - 前缀为
/book时,转发到https://book.myregion.awsapprunner.com/book - 用Python的
requests或Node.js的fetch实现转发即可,记得透传请求头和响应内容
- 前缀为
- 创建一个Lambda目标组,将这个函数关联进去
- 在ALB上配置规则,把
/user/*和/book/*的请求都转发到这个Lambda目标组
方案3:借助API Gateway做中间路由层
如果后续需要API管理、认证这类扩展能力,可以用这个方案:
- 创建一个REST API Gateway,添加
/user和/book两个资源,每个资源配置ANY方法 - 每个方法的集成类型选HTTP,集成端点填对应的App Runner服务URL,开启代理集成以保留路径和请求参数
- 部署API Gateway到一个阶段,获取API端点
- 在ALB上创建HTTP目标组,将API Gateway的端点加入(如果是私有API,需配置VPC接入)
- 最后在ALB上设置路径规则,把
/user/*和/book/*转发到这个API Gateway的目标组
内容的提问来源于stack exchange,提问作者RamPrakash
相关产品推荐
相关产品推荐

