gpt4 book ai didi

amazon-web-services - cloudformation 从 LoadBalancerArn 获取 DNSName

转载 作者:行者123 更新时间:2023-12-03 07:14:43 25 4
gpt4 key购买 nike

我的负载均衡器已经存在,并且不是使用 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

有没有办法像这样获得 !Ref 的 !GetAtt ?

其他一些尝试:

Value:
!GetAtt
- DNSName
- !Ref LoadBalancerARN

这也不起作用

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

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

最佳答案

您可以使用类似这样的东西来代替 Arn

Fn::Join: [ "", [ "http://", !GetAtt <<LoadBalancerResourceName>>.DNSName ] ]

关于amazon-web-services - cloudformation 从 LoadBalancerArn 获取 DNSName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com