【问题标题】:AWS Copilot multiple Load Balanced Web ServiceAWS Copilot 多负载均衡 Web 服务
【发布时间】:2023-11-23 12:33:01
【问题描述】:

我在副驾驶应用程序中部署了负载平衡 Web 服务。部署后,我添加了一个新的 HTTPS/443 监听器,将请求转发到部署 ECS 容器的目标组:

name: api1
type: Load Balanced Web Service

http:
  path: 'api1'

当我转到https://my-domain.com/api1 时,请求会转到我的 ECS 容器,一切正常。

现在我想添加第二个负载平衡 Web 服务:

name: api2
type: Load Balanced Web Service

http:
  path: 'api2'

当我部署它时,它会被创建到另一个目标组中,当我执行https://my-domain.com/api2 时,请求会转到第一个容器 (api1)。我尝试将第二个目标组添加到 Https 侦听器的“转发到”规则中,但随后请求会在两者之间随机重定向,并且大多数时候我都会收到 503 错误。

在同一个应用程序中部署 2 个负载平衡 Web 服务的正确方法是什么?我只想拥有 https://my-domain.com/api1 => api1 容器 https://my-domain.com/api2 => api2 容器

【问题讨论】:

    标签: aws-application-load-balancer aws-copilot


    【解决方案1】:

    所以我终于找到了解决方案,我只好在负载均衡器上做:

    • 添加转发到目标组之一的 HTTPS 侦听器
    • 点击新 HTTPS 监听器上的“查看/编辑规则”
    • 点击导航栏中的 + 按钮
    • 点击中间的“+插入规则”
    • 点击“+添加条件”
    • 选择“路径”并输入其他服务的路径/api2
    • 点击“+ 添加操作”
    • 选择“转发到”并选择第二个目标组

    如果能够从 copilot 配置中执行此操作会很好,但它现在可以工作了

    【讨论】: