如何在 .ebextensions 中获取负载均衡器的 ARN?
Posted
技术标签:
【中文标题】如何在 .ebextensions 中获取负载均衡器的 ARN?【英文标题】:How to get the ARN of the load balancer in .ebextensions? 【发布时间】: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。但我还没想好怎么做。
有人知道怎么做吗?
【问题讨论】:
【参考方案1】:根据docs:
当您将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回负载均衡器的 Amazon 资源名称 (ARN)。
因此,如果您使用的是当前一代的负载均衡器(即 ALB 或 NLB,而不是 CLB),您应该能够在负载均衡器的逻辑名称上使用 Ref
函数:
Value: !Ref MyLoadBalancer
我还发现 this list 的“内置”beantalk 资源名称对于获取与自动生成以在模板中使用的架构片段相关联的属性非常有用。
仅供参考,资源的“逻辑名称”通常是您为其分配的名称,作为模板中 Resources
属性的子级,例如
Resources:
MyLoadBalancer:
...
MyS3Bucket:
...
这里的逻辑名称是MyLoadBalancer
和MyS3Bucket
。如果您尚未定义它们,请使用上面链接列表中的名称,因此您的负载均衡器可能是 AWSEBLoadBalancer
或 AWSEBV2LoadBalancer
,具体取决于它是经典负载均衡器还是当前一代负载均衡器。
【讨论】:
我的逻辑名称是什么?你能解释一下吗? 我猜负载均衡器的逻辑名称看起来像awseb-AWSEB-C1XXEWXXXXX
。不过,这个名字也是由 elastic beanstalk 创建的。
“逻辑名称”要么是您在模板中在Resources
级别选择的名称,要么是beantalk 在我的答案链接的列表中自动使用的名称。我将添加一个编辑
在创建EB环境之前我不知道。
谢谢。 The list 对我帮助很大。我使用Value : "Ref" : "AWSEBV2LoadBalancer"
来获取负载均衡器的arn。以上是关于如何在 .ebextensions 中获取负载均衡器的 ARN?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 Elastic Beanstalk ebextensions 配置应用程序负载均衡器?
使用配置文件 (.ebextensions) 在自定义 VPC 中为 TCP 直通配置 Elastic Beanstalk 环境的负载均衡器
您可以通过 .ebextensions 文件配置 Elastic Beanstalk 负载平衡 SSL 证书吗?
如何从 .ebextensions 文件中的 ACM 检索单实例 beanstalk 应用程序的证书?