amazon-web-services - 如何在 .ebextensions 中获取负载均衡器的 ARN?

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

我想使用 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 由 Elastic beanstalk 创建。在环境创建之前我不知道。

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

有人知道怎么做吗?

最佳答案

根据docs :

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the Amazon Resource Name (ARN) of the load balancer.

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

Value: !Ref MyLoadBalancer

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

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

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

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

关于amazon-web-services - 如何在 .ebextensions 中获取负载均衡器的 ARN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723251/

相关文章:

amazon-web-services - 亚马逊 Redshift : Insert data into table from S3 using Java API

amazon-web-services - 使用 Terraform 缩小 AWS 上的 Redis 缓存集群

amazon-web-services - 由于私有(private) IP [AWS CloudFormation],AWS 堆栈中出现循环依赖

amazon-web-services - 如何在我的输出中引用 --s3-bucket 值?

python - AWS CloudFormation - 如何上传一些 python/flask 代码

node.js - 如何通过EB的NodeCommand调用多个命令?

amazon-web-services - ElasticSearch未加入AWS集群中的节点

amazon-web-services - 如何使用 secret 管理器存储数据库密码?

python - Django manage.py 命令在 ElasticBeanstalk 上有 SyntaxError

java - Springboot - AWS Elasticbeanstalk - 资源无法解析