我正在使用 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:正在刷新状态...
Error: error reading IAM Role (some_role): NoSuchEntity: The role with name some_role cannot be found. status code: 404, request id:
最佳答案
我认为这个场景最简单的解决方案是只为共享资源创建一个单独的状态,并在对其他状态运行应用之前对其运行应用
关于amazon-web-services - 仅当不存在时如何创建 terraform 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59438441/