如何移除Resource Group名称中的区域代码且不影响其他资源
解决方案
要实现只修改app1资源组名称、移除区域代码且不影响其他资源,有两种简单的实现方式:
方式一:直接构造资源组名称(推荐,更直观)
直接在resource_groups.tf里跳过location_code变量拼接名称,不用依赖现有的local.full_env_code,这样其他资源继续使用原来的local.full_env_code完全不受影响:
module "rg-app1" { source = "git::ssh://git@ssh.dev.azure.com/*" resource_group_name = format("rg-%s-%s-%s", lower(var.environment_code), lower(var.deployment_code), lower(var.name_suffix)) location = var.location }
这样生成的名称就是rg-d-lxr-app1,完美符合需求。
方式二:通过split/join裁剪现有full_env_code
如果不想改动拼接逻辑,也可以对local.full_env_code做裁剪,去掉最后一段区域代码:
module "rg-app1" { source = "git::ssh://git@ssh.dev.azure.com/*" resource_group_name = format("rg-%s-%s", join("-", slice(split("-", local.full_env_code), 0, length(split("-", local.full_env_code))-1)), lower(var.name_suffix)) location = var.location }
原理是:
split("-", local.full_env_code)把d-lxr-aus拆成数组["d", "lxr", "aus"]slice(..., 0, length(...)-1)取数组的前2个元素,得到["d", "lxr"]join("-", ...)把数组重新拼成d-lxr- 最后和name_suffix拼接成目标名称
两种方法都能满足需求,选第一种更清晰易懂,维护起来更方便。
内容的提问来源于stack exchange,提问作者Cyborganizer
相关产品推荐
相关产品推荐

