我有一个输出地图module.platformusers.paths
的模块,如下所示:
{
"user1_test" = "user1_value_path"
"user2_test" = "user2_value_path"
"user3_test" = "user3_value_path"
}
我必须遍历local.musyers
映射并获取密钥并与module.platformusers.paths
密钥进行比较,如果密钥包含在第二个映射中,那么我必须复制值
{
"user1" = "Allen"
"user2" = "john"
"user3" = "Rose"
}
我要假设自己是个体的
resource "aws_ssm_parameter" "userspath" {
name = "Allen"
type = "String"
value = "user1_value_path"
}
resource "aws_ssm_parameter" "userspath" {
name = "john"
type = "String"
value = "user2_value_path"
}
resource "aws_ssm_parameter" "userspath" {
name = "Rose"
type = "String"
value = "user3_value_path"
}
我正在按此处所示进行尝试,但由于我的密钥不完全匹配而无法正常工作
resource "aws_ssm_parameter" "userspath" {
for_each = module.platformusers.paths
name = ${each.value}
type = "String"
value = lookup( module.platformusers.paths, ${each.key}, "")
}
如何在此处申请包含?
答案 0 :(得分:0)
也许有更好的方法可以做到这一点,但这是我能想到的一种快速方法。 如果键的差异只是上面显示的“ _test”,那么实际上可能很简单。您可以使用格式功能添加“ _test”并进行查找。
在您的示例代码中,您没有针对local.musyers进行循环。 注意:它区分大小写。您可以使用UPPER函数使其不敏感。
resource "aws_ssm_parameter" "userspath" {
for_each = local.musyers
name = ${each.value}
type = "String"
value = lookup(module.platformusers.paths, format("%s_test", each.key) , "missing")
}