I want to replace the string to blank. How can I do that?
tags = { Name = replace(local.rule_file_names[fn], "/test/", "-") }
I have imported the security group resource. the resource in AWS doesn’t have Name tag. it is blank. I want to do same via code.
When I put "-"
it shows to change the resource. Also when I put space " "
, it also shows to change. I want nothing to change. I need it to show the infrastructure upto date while doing plan.
I tried the folliowing codes
tags = { Name = replace(local.rule_file_names[fn], "/test/", "-") }
tags = { Name = replace(local.rule_file_names[fn], "/test/", " ") }
Hi @dipendra.chaudhary,
It sounds like your goal here is for there to be no Name
tag declared at all in some situations, rather than to always set it but sometimes set it to a different value.
If so, you won’t be able to use replace
to solve this problem, because that can only change which value you assign to that tag. Not declaring the tag requires producing a map that doesn’t have a Name
element at all, which means that it’s the map itself that must be conditional, not the Name
element value in particular.
I’m not sure I fully understand the underlying purpose of the replace
rule you’ve shown here, but given the rest of the context of your question I think your goal is for Name
to be set only if local.rule_file_names[fn]
has a value other than "test"
. I’m not sure what fn
is here (there’s nothing in your example which declares it) but I’ll just preserve that expression exactly for the sake of this example:
tags = (
local.rule_file_names[fn] != "test" ?
{ Name = local.rule_file_names[fn] } :
{}
)