如何使用 Terraform 一次创建多个 AWS IAM 角色

How to create multiple AWS IAM roles at once using terraform

所以我知道我可以通过一遍又一遍地执行资源块直到我将它们全部写出来来做到这一点,但这似乎有点多余。现在我只是想在将策略附加到角色之前创建角色。我在这里和整个网络上查看,但找不到任何似乎可以做到这一点的东西。我查看了 aws_iam_role 模块源代码,但没有看到他们是如何为多个角色做到的。如有任何帮助,我们将不胜感激。

我现在所做的示例代码。

resource "aws_iam_role" "test1" {
    name = "role1"
    assume_role_policy = file("${path.module}/json_files/assume_role.json")
}

resource "aws_iam_role" "test2" {
    name = "role2"
    assume_role_policy = file("${path.module}/json_files/assume_role.json")
}

resource "aws_iam_role" "test3" {
    name = "role3"
    assume_role_policy = file("${path.module}/json_files/assume_role.json")
}

您可以使用 count or for_each:

计数:

resource "aws_iam_role" "test" {
    count = 3
    name = "role${each.index}"
    assume_role_policy = file("${path.module}/json_files/assume_role.json")
}

和for_each:

resource "aws_iam_role" "test" {
    for_each = toset(["1", "2", "3"])
    name = "role${each.key}"
    assume_role_policy = file("${path.module}/json_files/assume_role.json")
}