AWS CDK:Cognito 与 ApplicationLoadBalancedFargateService
AWS CDK: Cognito with ApplicationLoadBalancedFargateService
我想使用 Cognito 在 ECS Fargate 容器中保护我的网络应用 运行。将方便的 ecspatterns.ApplicationLoadBalancedFargateService
与 AuthenticateCognitoAction
中给出的 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 我发现你:
- 创建 Cognito 用户池和客户端
- 创建
ApplicationLoadBalancedFargateService
- 像这样向 fargateService 侦听器添加一个
AuthenticateCognitoAction
:
fargateService.listener.addAction('Listener', {
action: new actions.AuthenticateCognitoAction({
userPool,
userPoolClient,
userPoolDomain,
next: elbv2.ListenerAction.forward([fargateService.targetGroup]),
}),
})
我想使用 Cognito 在 ECS Fargate 容器中保护我的网络应用 运行。将方便的 ecspatterns.ApplicationLoadBalancedFargateService
与 AuthenticateCognitoAction
中给出的 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 我发现你:
- 创建 Cognito 用户池和客户端
- 创建
ApplicationLoadBalancedFargateService
- 像这样向 fargateService 侦听器添加一个
AuthenticateCognitoAction
:
fargateService.listener.addAction('Listener', {
action: new actions.AuthenticateCognitoAction({
userPool,
userPoolClient,
userPoolDomain,
next: elbv2.ListenerAction.forward([fargateService.targetGroup]),
}),
})