首页 > 解决方案 > 是否可以在新的 CFT 中使用现有的 ELB 而不会由现有的 CF 堆栈导出 ELB?

问题描述

我想知道是否可以使用现有的 ELB,它没有被 CF 堆栈导出,以便在新的 CFT 中引用并在生成的 CF 堆栈中使用。网上唯一的资源似乎是现有的 CFT 需要导出 ELB,以便新的 CFT 导入它。但是,似乎新的 CFT 应该可以引用和使用未由另一个 CFT 导出的现有 ELB。我尝试按名称引用作为参数,但找不到 ELB 支持的参数类型。

标签: amazon-web-servicesamazon-cloudformation

解决方案


这应该是可能的。使用 CF 堆栈的导出基本上是要求 AWS 代表您将该资源的字符串表示形式传递给另一个堆栈。因此,如果您导出一个AWS::ElasticLoadBalancingV2::LoadBalancer(并返回其 ARN),您可以通过提供相同的 ARN 将负载均衡器传递到另一个堆栈。

换句话说,我看不出这不起作用的任何原因:

Parameters:
  MyServicesLoadBalancer:
    Type: "String"
    Description: "ARN of the Load Balancer"

Resources:
  MyServicesLoadBalancerListener:
    Type: "AWS::ElasticLoadBalancingV2::Listener"
    Properties:
      LoadBalancerArn: !Ref MyServicesLoadBalancer
      Port: 80
      Protocol: HTTP
      DefaultActions:
        - Type: fixed-response
          FixedResponseConfig:
            ContentType: "text/plain"
            MessageBody: "You've reached the listener! Congrats!"
            StatusCode: "200"

推荐阅读