You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从CloudFormation迁移至AWS CDK:创建ELB监听器默认动作遇阻

解决方案:ELB监听器默认重定向至443及ContentType报错修复

一、正确设置80端口监听器的默认重定向动作

直接在创建ApplicationListener时通过default_action参数配置,这是最简洁的方式:

from aws_cdk import aws_elasticloadbalancingv2 as elbv2

# 假设已创建ApplicationLoadBalancer实例load_balancer
http_listener = elbv2.ApplicationListener(
    self, "HttpListener",
    load_balancer=load_balancer,
    port=80,
    default_action=elbv2.ListenerAction.redirect(
        protocol="HTTPS",
        port="443",
        permanent=True  # 可选,设置为永久重定向(301),默认是临时重定向(302)
    )
)

二、修复ContentType报错问题

你遇到的AttributeError是因为CDK版本更新后,ContentType枚举不再暴露在aws_elasticloadbalancingv2模块中。直接传入MIME类型字符串即可替代原来的枚举值:

# 示例:固定响应动作的正确写法
listener80.add_action('DefaultAction',
    action=elbv2.ListenerAction.fixed_response(
        status_code=200,
        content_type='text/plain',  # 直接用字符串替代枚举
        message_body="OK"
    ),
    priority=1  # 优先级设为1,确保作为默认动作执行
)

关键说明

  • default_action是监听器实例化时的核心参数,用于定义无匹配规则时的默认行为,优先使用这种方式配置重定向,比add_action更直观。
  • 若使用add_action添加默认动作,需设置priority=1(最低优先级),避免被其他高优先级规则覆盖。

内容的提问来源于stack exchange,提问作者Trevor Griffiths

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:20:36