AWS CDK:Cognito 与 ApplicationLoadBalancedFargateService

AWS CDK: Cognito with ApplicationLoadBalancedFargateService

我想使用 Cognito 在 ECS Fargate 容器中保护我的网络应用 运行。将方便的 ecspatterns.ApplicationLoadBalancedFargateServiceAuthenticateCognitoAction 中给出的 Cognito 示例一起使用 https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-elasticloadbalancingv2-actions.AuthenticateCognitoAction.html 中的例子让我很头疼。

我尝试先创建 Cognito 示例中显示的 LoadBalancer,然后将其作为 loadBalancer 构造函数中的 loadBalancer 参数传递。我还尝试先创建 ApplicationLoadBalancedFargateService,然后 fargateService.loadBalancer.addListener 添加 Cognito Listener。两种解决方案都失败了:

Resource handler returned message: "A listener already exists on this port for this load balancer

结合这两者的正确方法是什么?

感谢这个 demo stack 我发现你:

  1. 创建 Cognito 用户池和客户端
  2. 创建ApplicationLoadBalancedFargateService
  3. 像这样向 fargateService 侦听器添加一个 AuthenticateCognitoAction
    fargateService.listener.addAction('Listener', {
      action: new actions.AuthenticateCognitoAction({
        userPool,
        userPoolClient,
        userPoolDomain,
        next: elbv2.ListenerAction.forward([fargateService.targetGroup]),
      }),
    })