从 terraform 中的安全组名称中提取安全组 ID

Kum*_*uri 4 amazon-web-services terraform-provider-aws

我正在尝试在 terraform 中编写一个通用脚本来创建 ALB(在 AWS 中)。安全组已创建 (sg_alb) 但不在同一脚本中。它是预先创建的,我想提取安全组的 id 并将其传递给 security_groups = ["${aws_security_group.lb_sg.id}"]

我看过上面提到的例子,但假设安全组是与 ALB 一起创建的

我怎样才能做到这一点?

谢谢库马尔

Mar*_*k B 7

这就是 Terraform数据源的用途。如果您的 Terraform 模块将安全组名称作为变量获取,那么您可以像这样查找安全组:

data "aws_security_group" "lb_sg" {
  name = var.security_group_name
}
Run Code Online (Sandbox Code Playgroud)

然后您可以在创建 ALB 时使用数据源,如下所示:

security_groups = [data.aws_security_group.lb_sg.id]
Run Code Online (Sandbox Code Playgroud)

  • @RodrigoM 数据源的工作方式是 Terraform 根据您提供的参数通过 AWS API 查找数据源。那么数据源的所有属性都可供您稍后参考。根据此处的文档https://www.terraform.io/docs/providers/aws/d/security_group.html,您可以通过“name”、“id”、“tags”、“filter”或“vpc_id”查找安全组`。完成后,值“id”、“name”、“tags”、“vpc_id”和“description”可供参考。 (4认同)