我有这个模板命名为: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 })
}