Terraform 地形模块定义中的合并地图
我将Azure Function应用程序作为Terraform中的一个模块公开,我希望该模块允许用户扩展配置参数:Terraform 地形模块定义中的合并地图,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我将Azure Function应用程序作为Terraform中的一个模块公开,我希望该模块允许用户扩展配置参数: resource "azurerm_function_app" "test" { name = "${var.prefix}-listener" resource_group_name = "${var.resource_group_name}" location = "${var.
resource "azurerm_function_app" "test" {
name = "${var.prefix}-listener"
resource_group_name = "${var.resource_group_name}"
location = "${var.resource_group_location}"
app_service_plan_id = "${var.app_service_plan_id}"
storage_connection_string = "${var.storage_account_connection_string}"
app_settings = {
HASH = "${data.archive_file.test.output_base64sha256}"
WEBSITE_USE_ZIP = "https://${var.storage_account_name}.blob.core.windows.net/${azurerm_storage_container.test.name}/${azurerm_storage_blob.test.name}${data.azurerm_storage_account_sas.test.sas}"
}
site_config {
always_on = true
}
}
但是,在该示例中,app\u设置
是固定的,我希望它能够扩展此映射。比如:
app_settings = ${merge({
HASH = "${data.archive_file.test.output_base64sha256}"
WEBSITE_USE_ZIP = "https://${var.storage_account_name}.blob.core.windows.net/${azurerm_storage_container.test.name}/${azurerm_storage_blob.test.name}${data.azurerm_storage_account_sas.test.sas}"
}, ${var.app_settings})}
我是从阅读报纸上得到这个想法的。但是,我得到一个无效表达式错误
这里的正确语法是什么?看起来
{
和}
导致字符串插值出现问题。您可以将代码更改为
app_settings = "${merge(
map("HASH","${data.archive_file.test.output_base64sha256}"),
map("WEBSITE_USE_ZIP","https://${var.storage_account_name}.blob.core.windows.net/${azurerm_storage_container.test.name}"),/${azurerm_storage_blob.test.name}${data.azurerm_storage_account_sas.test.sas}",
var.app_settings}"
希望这能解决您的问题。看起来
{
和}
会导致字符串插值出现问题。您可以将代码更改为
app_settings = "${merge(
map("HASH","${data.archive_file.test.output_base64sha256}"),
map("WEBSITE_USE_ZIP","https://${var.storage_account_name}.blob.core.windows.net/${azurerm_storage_container.test.name}"),/${azurerm_storage_blob.test.name}${data.azurerm_storage_account_sas.test.sas}",
var.app_settings}"
希望这能解决您的问题。您的
${var.app\u设置}
定义是什么?它是地图吗?@nancyxyong YesTry this:app_settings=“${merge({“HASH”=“${data.archive\u file.test.output\u base64sha256}”,“WEBSITE\u USE\u ZIP”=“https://${var.storage\u account\u name}.blob.core.windows.net/${azurerm storage\u container.test.name}/${azurerm storage\u storage\u storage\u blob.test.test.name}${data.azurerm sas},”${var.app\u settings}“}”
你的${var.app\u settings}
定义是什么?它是地图吗?@nancyxyong YesTry这:app\u settings=“${merge({“HASH”=“${data.archive\u file.test.output\u base64sha256}”,“网站使用\u ZIP”=“https://${var.storage\u帐户名}.blob.core.windows.net/${azurerm storage\u container.test name}/${azurerm_storage_blob.test.name}${data.azurerm_storage_account_sas.test.sas},“${var.app_settings}”)}”