AWS CloudFormation Application Load Balancer - 如何将 HTTP 侦听器重定向到 HTTPS 侦听器?
Posted
技术标签:
【中文标题】AWS CloudFormation Application Load Balancer - 如何将 HTTP 侦听器重定向到 HTTPS 侦听器?【英文标题】:AWS CloudFormation Application Load Balancer - how to redirect HTTP listener to HTTPS listener? 【发布时间】:2019-02-04 17:12:26 【问题描述】:我正在尝试为 ALB 编写 CloudFormation 模板,但在我想将 ALB 的 HTTP 侦听器的流量重定向到 HTTPS 侦听器的点上卡住了。文档只提到转发/重定向到目标组。
我知道使用 Web 界面(AWS 控制台)是可以实现的,但我想避免这种情况。在服务器上处理它也不适合我。
这个 ALB 的功能是不是根本没有在 CloudFormation 中实现,而是存在于 Console 中?
【问题讨论】:
【参考方案1】:2018 年 11 月 19 日,Amazon 为 Elastic Load Balancer 侦听器推出了 RedirectConfig。此侦听器类型也用于 Application Load Balancer (ALB)。
您可以在下面找到通常的 HTTP 到 HTTPS 重定向的示例配置。将“PublicLoadBalancerBackend”替换为您的负载均衡器 CloudFormation 对象。
PublicLoadBalancerHttpRedirectListener:
Type: AWS::ElasticLoadBalancingV2::Listener
DependsOn:
- PublicLoadBalancerBackend
Properties:
DefaultActions:
- RedirectConfig:
Host: "#host"
Path: "/#path"
Port: 443
Protocol: "HTTPS"
Query: "#query"
StatusCode: HTTP_301
Type: redirect
LoadBalancerArn: !Ref 'PublicLoadBalancerBackend'
Port: 80
Protocol: HTTP
关于 RedirectConfig 的 CloudFormation 文档: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html
有关侦听器操作的 CloudFormation 文档: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-defaultactions.html
【讨论】:
如何在弹性beantalk环境中为应用LB做这个? 我是否需要将此块包装在条件中以仅在选择“应用程序”时执行,因为我的 CFT 根据传递的参数创建 ALB 或 NLB。如果出现“网络”,AWS 会自动为我忽略它吗?【参考方案2】:目前看来,唯一的选择是编写一个自定义资源来管理它。看: https://github.com/jheller/alb-rule 一个可靠的例子来实现 - 或用作您自己实现的基础。 (我与上面的代码没有从属关系 - 只是因为我自己需要做同样的事情而发现)
【讨论】:
【参考方案3】:事实证明,redirect
目前还没有在 CF 中实现,遗憾的是,AWS 会发生什么 - source。
【讨论】:
【参考方案4】:他们最近实施了它。看一看:https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_RedirectActionConfig.html
【讨论】:
自July 2018 以来,它是他们API 的一部分,如果我没记错的话,但正如我所问的问题所指的那样,CloudFormation 中仍然不存在。以上是关于AWS CloudFormation Application Load Balancer - 如何将 HTTP 侦听器重定向到 HTTPS 侦听器?的主要内容,如果未能解决你的问题,请参考以下文章
将现有 AWS 资源整合到 CloudFormation 堆栈中
CloudFormation - 将标签应用于其他 AWS 资源
AWS CloudFormation:Cognito LambdaTrigger CustomEmailSender - 属性“AWS CloudFormation 目前不支持。”和 CDK 的使用