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

如何将Classic ELB的ARN作为输出导出?CloudFormation配置报错

解决Classic ELB在CloudFormation中输出ARN的问题

这个问题的核心是Classic Load Balancer(CLB)和Application Load Balancer(ALB)在CloudFormation的属性支持上存在差异:ALB的Fn::GetAtt直接支持返回Arn属性,但CLB并不提供这个属性,默认只能通过Fn::GetAtt获取负载均衡器的名称。

要输出CLB的ARN,我们可以利用AWS资源ARN的固定格式手动构造,CLB的ARN格式为:

arn:aws:elasticloadbalancing:${区域ID}:${账号ID}:loadbalancer/${负载均衡器名称}

在CloudFormation中,我们可以通过Fn::Sub函数结合伪参数和CLB的属性来自动拼接这个ARN,具体配置如下:

Outputs:
  LoadBalancerARN:
    Description: A reference to the Classic Load Balancer ARN
    Value: !Sub 'arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:loadbalancer/${LoadBalancer.LoadBalancerName}'

关键说明:

  • ${AWS::Region}:CloudFormation内置伪参数,自动获取当前栈部署的AWS区域
  • ${AWS::AccountId}:内置伪参数,自动获取当前AWS账号ID
  • ${LoadBalancer.LoadBalancerName}:引用你的Classic ELB资源的LoadBalancerName属性(注意这里的LoadBalancer是你CloudFormation模板中CLB资源的逻辑ID,要和自己的配置对应)

这样配置后,Stack部署完成就能正确输出Classic ELB的ARN了,和ALB通过GetAtt获取ARN的效果一致。

内容的提问来源于stack exchange,提问作者Udara Jayawardana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:18:37