首页 > 解决方案 > aws_shield_protection Terraform

问题描述

我正在努力寻找一种方法来将具有特定标签值(例如 Shield protection = ON)的所有负载均衡器包含在 aws 帐户中。目前我在一个变量中有一个 arn 的映射并运行一个 for 循环。这种方法有效,但效率不高;因为每次我都必须手动添加新负载均衡器的 ARN。

resource "aws_shield_protection" "this" {
  for_each = var.listofarn

  name         = "shield protection".each.key
  resource_arn = each.key
}

variable listofarn {
  type = map(string)
  default = {
  appx_alb="arn::xxxxx"
  appy_alb="arn:yyyyy"
 }
}

有没有办法使用数据资源“aws_lb”。谢谢。

标签: amazon-web-servicesterraformterraform-provider-awsaws-cdk

解决方案


使用数据源不会有太大帮助aws_lb数据源只能返回一个 alb。您不能使用它来获取有关所有 ALB 的信息。您必须aws_lb在带有标签或某些 ALB id 的 for_loop 中运行数据源。

但是您可以通过开发外部数据源来解决您的问题。由于它是一个完全自定义的数据源,它可以以您想要的形式返回有关所有 ALB 的信息。


推荐阅读