如何在Terraform中对模板和文本文件进行变量化?



我有这个模板命名为:email-passwordless.ar.html.ftl

内容如下:

[#setting url_escaping_charset="UTF-8"]
[#assign url = "https://google.com/auth/prod/${code}" /]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ar" dir="rtl">
<head>

使用此模板的资源为:

resource "fusionauth_email" "passwrodless_template" {
name                  = var.passwordless_email_template_name
localized_subjects = {
"ar" = var.email_passwordless_localized_subjects
}
localized_html_templates = {
"ar" = file("${path.module}/email-templates/email-passwordless.ar.html.ftl")
}
}

模板将在不同的环境中使用,因此它的URL将为每个环境是不同的。我如何使URL在模板中的变量和传递其值在资源或类似的东西

对于这个用例,您将使用templatefile函数。您可以在与当前文件相同的路径下创建email-passwordless.ar.html.tmpl文件:

[#setting url_escaping_charset="UTF-8"]
[#assign url = "${url}" /]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ar" dir="rtl">
<head>

我们用url替换你已经命名的字符串类型变量code为整个url。在你的Terraform配置中给var.url赋值之后,它的值可以通过templatefile函数参数传递给模板渲染器:

localized_html_templates = {
"ar" = templatefile("${path.module}/email-templates/email-passwordless.ar.html.tmpl", { url = var.url })
}

最新更新