【问题标题】:How to get the ARN of the load balancer in .ebextensions?如何在 .ebextensions 中获取负载均衡器的 ARN?
【发布时间】:2020-01-03 12:03:08
【问题描述】:

我想使用 ebextensions 将 cloudwatch 警报添加到弹性 beanstalk 环境。

所以我创建了一个.ebextensions/cloudwatch-alarms.confg 文件,如下所示:

Resources:
  ELBLatencyAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmDescription: { "Fn::Join" : ["", [{ "Ref" : "AWSEBEnvironmentName" }, ": HIGH ELB latency." ]]}
      Namespace: AWS/ApplicationELB
      MetricName: Latency
      Dimensions:
      - Name: LoadBalancer
        Value : "arn:aws:elasticloadbalancing:xx-xxxxxx-1:123456789012:loadbalancer/app/awseb-AWSEB-oooooooooooo/12b68287xxxxxxxx"
      Statistic: Average
      Period: 300
      EvaluationPeriods: 1
      Threshold: 
        Fn::GetOptionSetting:
          OptionName: ELBLatency
          DefaultValue: "0.5"
      ComparisonOperator: GreaterThanThreshold

我还没有弄清楚的一件事是如何使用函数来获取负载均衡器的 ARN。

负载均衡器的 arn,arn:aws:elasticloadbalancing:xx-xxxxxx-1:123456789012:loadbalancer/app/awseb-AWSEB-oooooooooooo/12b68287xxxxxxxx,是由弹性 beanstalk 创建的。在创建环境之前我不知道。

我想也许我可以使用here 描述的函数来获取负载均衡器的 arn。但我还没想好怎么做。

有人知道怎么做吗?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-elastic-beanstalk


    【解决方案1】:

    根据docs

    当您将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回负载均衡器的 Amazon 资源名称 (ARN)。

    因此,如果您使用的是当前一代的负载均衡器(即 ALB 或 NLB,而不是 CLB),您应该能够在负载均衡器的逻辑名称上使用 Ref 函数:

    Value: !Ref MyLoadBalancer
    

    我还发现 this list 的“内置”beantalk 资源名称对于获取与自动生成以在模板中使用的架构片段相关联的属性非常有用。

    仅供参考,资源的“逻辑名称”通常是您为其分配的名称,作为模板中 Resources 属性的子级,例如

    Resources:
       MyLoadBalancer:
       ...
       MyS3Bucket:
       ...
    

    这里的逻辑名称是MyLoadBalancerMyS3Bucket。如果您尚未定义它们,请使用上面链接列表中的名称,因此您的负载均衡器可能是 AWSEBLoadBalancerAWSEBV2LoadBalancer,具体取决于它是经典负载均衡器还是当前一代负载均衡器。

    【讨论】:

    • 我的逻辑名称是什么?你能解释一下吗?
    • 我猜负载均衡器的逻辑名称看起来像awseb-AWSEB-C1XXEWXXXXX。不过,这个名字也是由 elastic beanstalk 创建的。
    • “逻辑名称”要么是您在模板中在Resources 级别选择的名称,要么是beantalk 在我的答案链接的列表中自动使用的名称。我将添加一个编辑
    • 在创建EB环境之前我不知道。
    • 谢谢。 The list 对我帮助很大。我使用Value : { "Ref" : "AWSEBV2LoadBalancer" } 来获取负载均衡器的arn。
    猜你喜欢
    • 2021-12-07
    • 2018-07-18
    • 2020-12-18
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    相关资源
    最近更新 更多