仅当不存在时才创建地形资源

问题描述 投票:0回答:1

我正在使用Terraform在AWS中创建角色。由于IAM是非区域服务,因此我只想创建一次角色。因此,每当我运行Terraform时,都应检查该角色是否已经存在,如果不存在,则应创建一个。

data "aws_iam_role" "iam_role_check" {
  name = "some_role"
}

resource "aws_iam_role" "iam_role" {
  count= "${data.aws_iam_role.iam_role_check != "null" ? 0 : 1}"
  name = "some_role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

data.aws_iam_role.iam_role_check:刷新状态...

错误:读取IAM角色(some_role)时出错:NoSuchEntity:找不到名称为some_role的角色。状态码:404,请求ID:

amazon-web-services aws-lambda terraform terraform-provider-aws
1个回答
0
投票

您描述的功能是terraform的默认行为。运行terraform apply时,如果资源已经存在,terraform将不会创建它。

© www.soinside.com 2019 - 2024. All rights reserved.