【发布时间】:2020-08-31 18:00:00
【问题描述】:
我目前在 Terraform 中计算索引的方式遇到了一些挑战。我正在寻求一些帮助以将其转换为 for_each。
# Data Source for github repositories. This is used for adding all repos to the teams.
data "github_repositories" "repositories" {
query = "org:theorg"
}
resource "github_team_repository" "business_analysts" {
count = length(data.github_repositories.repositories.names)
team_id = github_team.Business_Analysts.id
repository = element(data.github_repositories.repositories.names, count.index)
permission = "pull"
}
我尝试了以下方法但没有成功:
resource "github_team_repository" "business_analysts" {
for_each = toset(data.github_repositories.repositories.names)
team_id = github_team.Business_Analysts.id
repository = "${each.value}"
permission = "pull"
}
我正在查询一个 Github 组织并收到一个庞大的存储库列表。然后我使用 count 将这些存储库添加到团队中。不幸的是,一旦添加或更改了新的存储库,Terraform 就会出错。话虽这么说,我认为新的 for_each 函数可以为我解决这个难题,但是,我在思考如何实现它时遇到了麻烦;在这种特殊情况下。任何帮助,将不胜感激。
【问题讨论】:
-
你对 for_each 有什么尝试?你尝试过的东西有错误吗?如果是这样,您能否展示您尝试过的内容以及相关错误?
-
resource "github_team_repository" "business_analysts" { for_each = toset(data.github_repositories.repositories.names) team_id = github_team.Business_Analysts.id 存储库 = "${each.value}" 权限 = "pull" }
-
您应该将它与您遇到的任何错误一起编辑到您的问题中。
-
当您说“没有成功”时,您会收到错误消息吗?如果是这样,您可以编辑您的问题以包含错误吗?如果它没有出错但没有做你所期望的,你能解释一下它做了什么吗?这种解释也应该在问题本身而不是评论中。
-
我们确实需要查看错误,或者实际输出与预期的对比。但是,使用我的水晶球,我想您可能需要将
each.value更改为each.key。
标签: list github set terraform terraform0.12+