首页 文章

用于从LoadBalancerArn获取DNSName的cloudformation

提问于
浏览
0

我的负载均衡器已存在,并且未使用cloudformation创建 .

我将完整的arn作为一个参数传递给需要它的资源,就像一个监听器:

Listener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      DefaultActions:
      - Type: forward
        TargetGroupArn: !Ref MyTargetGroup
      LoadBalancerArn: !Ref LoadBalancerARN
      Port: 80
      Protocol: HTTP

在这个使用LoadBalacnerArn的模板中,我还希望它输出该负载均衡器的DNSName-这可能吗?

这样做我可以返回作为参数传入的ARN:

Outputs:
  LoadBalancerName:
    Description: The DNS Name of the ALB where this container was deploy
    Value: !Ref LoadBalancerARN

我试过这个获取这样的DNS名称,但我收到一个错误:

Outputs:
  LoadBalancerName:
    Description: The DNS Name of the ALB where this container was deploy
    Value: !GetAtt !Ref LoadBalancerARN.DNSName

有没有办法!GetAtt of a!Ref喜欢这个?

结合其他尝试:

Value:
  !GetAtt
    - DNSName
    - !Ref LoadBalancerARN

这也不起作用

Value:
  !GetAtt
  - !Ref LoadBalancerARN
  - LoadBalancerARN.DNSName

也许我可以做一些hacky,比如解析arn来获取dns的名字?

1 回答

  • 0

    除非由Cloudformation创建,否则您无法将负载均衡器引用为 Cloud 形态资源 .

    您需要通过cloudformation重新创建负载均衡器,以便引用DNS名称等资源属性 .

相关问题