【发布时间】:2022-10-20 01:41:04
【问题描述】:
我有一个 ALB 和一个由 ECS 创建的目标组的设置,我正在使用 Fargate 并按照 this article 创建了一个构建管道。我的应用程序是用 NET 核心构建的,我有一个 Angular 前端。完成了所有这些工作,我能够部署我的代码更改,但我有点陷入以下问题。
我正在使用 Cognito 进行身份验证,并使用我为托管 UI 设置的自定义域。从浏览器看来,当我尝试访问受保护的端点时,我收到了 504 网关错误,这在某种程度上没有在浏览器中重定向到 Cognito。当我在 localhost 上运行应用程序时,所有这些都可以正常工作。
当我查看日志时,我注意到以下异常:
System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://cognito-idp.<region>.amazonaws.com/<region_and_a_code>/.well-known/openid-configuration'
显然,它无法建立与 Cognito 的连接。我的容器仅使用端口 80,我的目标组实例也使用端口 80,ALB 在 443 上使用 HTTPS 将流量定向到目标组,对于 ALB 端口 80,我只重定向到 443。
我尝试了一些不同的事情,比如设置权限值而不是元数据地址,尝试使用 BackChannelHttpHandler 执行 HTTPS 调用,尝试更新端口映射以允许在 443 上进行通信,但不知何故,它似乎被任务覆盖了我在设置构建管道时创建的定义。我的任务定义中的网络模式现在是 awsvpc,如果我尝试将其设置为主机,它会抱怨我无法将它与 Fargate 一起使用。
我需要做什么才能允许来自 Docker 容器实例的 HTTPS 请求到达 Cognito?
【问题讨论】:
标签: amazon-web-services docker amazon-cognito aws-fargate