如何。迭代terraform中的list(map(list))

露西

我想在s3中创建文件(密钥)。通过以下代码,我可以在s3中成功创建文件-

locals {
  rules = [
  {
    user = "user-1",
    roles = "test"
  }
}

resource "aws_s3_bucket_object" "this" {

  for_each    = zipmap(local.rules.*.user, local.rules.*)
   bucket      = "test-09129"
   acl         = "private"
   source      = "/dev/null"
   key         = "${each.value.roles}/${each.key}"
}

s3中的文件-创建了test / user-1

但是角色可以是多个,所以我创建了角色列表。

locals {
  rules = [
  {
    user = "user-1",
    roles = ["test"]
  },
  {
    user = "user-2",
    roles = ["test", "dev", "prd"]
  }]
}

现在,我想基于上面的列表创建文件。如何根据用户和角色迭代列表(角色)以创建文件?欲望输出-

file in s3 -
test/user-1 
test/user-2 
dev/user-2
prd/user-2
马辛

您可以拼合你ruleshelper_rules(假设我理解正确的话你想要的结果):


locals {
  rules = [
  {
    user = "user-1",
    roles = ["test"]
  },
  {
    user = "user-2",
    roles = ["test", "dev", "prd"]
  }]
  
  
  helper_rules = merge([
      for user, rules in zipmap(local.rules.*.user, local.rules.*.roles):
         { for rule in rules:
           "${user}-${rule}" => {user = user, rule = rule}
         }
  ]...)
}

这将导致helper_rules

{
  "user-1-test" = {
    "rule" = "test"
    "user" = "user-1"
  }
  "user-2-dev" = {
    "rule" = "dev"
    "user" = "user-2"
  }
  "user-2-prd" = {
    "rule" = "prd"
    "user" = "user-2"
  }
  "user-2-test" = {
    "rule" = "test"
    "user" = "user-2"
  }
}

这样,您的对象可能是:

resource "aws_s3_bucket_object" "this" {

  for_each     = local.helper_rules
   bucket      = "test-09129"
   acl         = "private"
   source      = "/dev/null"
   key         = "${each.value.role}/${each.value.user}"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在drools文件中迭代List <HashMap>并更新Hash Map对象并返回更新的List

来自分类Dev

如何只迭代 List<Map<String, Object>> 中的一个值

来自分类Dev

如何迭代 List<Map<String,String>> 并将其键、值添加到 Java 对象中

来自分类Dev

在每个List.map迭代中递增uniqueID

来自分类Dev

如何在硒/ Java中迭代多个List <WebElement>

来自分类Dev

如何在Android中解析List <Map>?

来自分类Dev

如何在Android中解析List <Map>?

来自分类Dev

Python - <type:'list'> 中的迭代如何将列表迭代为表格或表格

来自分类Dev

使用Terraform将列表(map(list(map(string()))))转换为map(list(map(string))))

来自分类Dev

python3中的map和list迭代器之间的区别

来自分类Dev

如何迭代List <T>,其中T:MyClass

来自分类Dev

如何打印通用std :: list迭代器?

来自分类Dev

如何迭代List <T>,其中T:MyClass

来自分类Dev

C ++中const list <t>的迭代器

来自分类Dev

带有迭代器的std :: map从std :: map的迭代器到std :: list

来自分类Dev

如何使用 React JSX 中的 map() 方法重构 <List> 内容?

来自分类Dev

如何在Java8中将List <Map <String,Object >>分组为Map <String,List <Map <String,Object >>

来自分类Dev

我们如何将 List<String> 值存储在 Iterator<List<String>> 之类的迭代器中?

来自分类Dev

List.map中的逻辑

来自分类Dev

List.map中的逻辑

来自分类Dev

如何在flutter中为List的每个索引迭代此函数?

来自分类Dev

如何将元素加入可迭代对象队列中,例如Queue [List [Node]]?

来自分类Dev

如何在一个#list中迭代项目的多个序列或集合?

来自分类Dev

如何使用 list.remove 或 del 从使用切片迭代的 CSV 中删除行?

来自分类Dev

如何迭代 Map() 对象?

来自分类Dev

如何使用Immutable JS Map.setIn在Map中创建深层嵌套的List?

来自分类Dev

如何使用增强的for循环迭代两个List对象

来自分类Dev

Dart Flutter中的迭代槽图<List <dataModel >>

来自分类Dev

list :: insert是否会破坏c ++中的迭代器?

Related 相关文章

  1. 1

    如何在drools文件中迭代List <HashMap>并更新Hash Map对象并返回更新的List

  2. 2

    如何只迭代 List<Map<String, Object>> 中的一个值

  3. 3

    如何迭代 List<Map<String,String>> 并将其键、值添加到 Java 对象中

  4. 4

    在每个List.map迭代中递增uniqueID

  5. 5

    如何在硒/ Java中迭代多个List <WebElement>

  6. 6

    如何在Android中解析List <Map>?

  7. 7

    如何在Android中解析List <Map>?

  8. 8

    Python - <type:'list'> 中的迭代如何将列表迭代为表格或表格

  9. 9

    使用Terraform将列表(map(list(map(string()))))转换为map(list(map(string))))

  10. 10

    python3中的map和list迭代器之间的区别

  11. 11

    如何迭代List <T>,其中T:MyClass

  12. 12

    如何打印通用std :: list迭代器?

  13. 13

    如何迭代List <T>,其中T:MyClass

  14. 14

    C ++中const list <t>的迭代器

  15. 15

    带有迭代器的std :: map从std :: map的迭代器到std :: list

  16. 16

    如何使用 React JSX 中的 map() 方法重构 <List> 内容?

  17. 17

    如何在Java8中将List <Map <String,Object >>分组为Map <String,List <Map <String,Object >>

  18. 18

    我们如何将 List<String> 值存储在 Iterator<List<String>> 之类的迭代器中?

  19. 19

    List.map中的逻辑

  20. 20

    List.map中的逻辑

  21. 21

    如何在flutter中为List的每个索引迭代此函数?

  22. 22

    如何将元素加入可迭代对象队列中,例如Queue [List [Node]]?

  23. 23

    如何在一个#list中迭代项目的多个序列或集合?

  24. 24

    如何使用 list.remove 或 del 从使用切片迭代的 CSV 中删除行?

  25. 25

    如何迭代 Map() 对象?

  26. 26

    如何使用Immutable JS Map.setIn在Map中创建深层嵌套的List?

  27. 27

    如何使用增强的for循环迭代两个List对象

  28. 28

    Dart Flutter中的迭代槽图<List <dataModel >>

  29. 29

    list :: insert是否会破坏c ++中的迭代器?

热门标签

归档