我的负载均衡器已存在,并且未使用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 回答
除非由Cloudformation创建,否则您无法将负载均衡器引用为 Cloud 形态资源 .
您需要通过cloudformation重新创建负载均衡器,以便引用DNS名称等资源属性 .