我一定是太蠢了,但我无法在Terraform中实现简单的字符串拼接。
我有以下数据null_data_source
:
data "null_data_source" "api_gw_url" {
inputs = {
main_api_gw = "app.api.${var.env_name == "prod" ? "" : var.env_name}mydomain.com"
}
}
所以当
env_name="prod"
时,我想要输出app.api.mydomain.com
,对于其他任何情况 - 比如说env_name="staging"
,我想要app.api.staging.mydomain.com
。但是上面的代码会输出
app.api.stagingmydomain.com
<--注意staging
后面缺少"."。我尝试在
env_name
不是"prod"时连接".",但是Terraform出现了错误:data "null_data_source" "api_gw_url" {
inputs = {
main_api_gw = "app.api.${var.env_name == "prod" ? "" : var.env_name + "."}mydomain.com"
}
}
错误是__builtin_StringToInt: strconv.ParseInt: parsing ""
TF中的concat()
函数似乎是用于列表而不是字符串。
因此如标题所述:您如何在Terraform中执行简单的字符串连接?
我简直不敢相信我正在问如何将2个字符串连接在一起XD
更新:
对于有类似问题的任何人,我暂时使用了这个可怕的解决方法:
main_api_gw = "app.api.${var.env_name == "prod" ? "" : var.env_name}${var.env_name == "prod" ? "" : "."}mydomain.com"