【发布时间】:2019-08-14 05:13:21
【问题描述】:
我一定是非常愚蠢,但我不知道如何在 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"
【问题讨论】:
-
小通知,0.12之前的版本都是这样
-
@Pixel 是的,对于 > 0.12 的版本,请查看 stackoverflow.com/a/64452011/5567066