如何在 Terraform 中可变化模板和文本文件
How can I variablize a template and text file in 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 function。您可以在与当前文件相同的路径中创建 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 })
}
我将此模板命名为: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 function。您可以在与当前文件相同的路径中创建 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 })
}