You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中为模板和文本文件设置变量 适配多环境部署需求

多环境适配实现方案
  • 第一步:修改FTL模板,替换硬编码URL为变量占位符
    修改email-passwordless.ar.html.ftl内容,将固定的基础地址替换为自定义变量:
[#setting url_escaping_charset="UTF-8"]
[#assign url = "${authBaseUrl}/${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>
  • 第二步:修改Terraform资源配置,使用templatefile渲染模板并传值
    将原有file函数替换为支持变量注入的templatefile函数,将不同环境的URL作为参数传入模板:
# 注:原资源名"passwrodless_template"为拼写错误,已修正为passwordless_template
resource "fusionauth_email" "passwordless_template" {
  name                  = var.passwordless_email_template_name
  localized_subjects = {
    "ar" = var.email_passwordless_localized_subjects
  }
  localized_html_templates = {
    "ar" = templatefile("${path.module}/email-templates/email-passwordless.ar.html.ftl", {
      authBaseUrl = var.auth_base_url
    })
  }
}
  • 第三步:新增环境变量定义
    在variables.tf中新增对应变量,不同环境部署时传入对应环境的URL值即可:
variable "auth_base_url" {
  type        = string
  description = "无密码登录验证服务的基础URL,不同环境取值不同"
  # 可按需设置对应环境的默认值,例如测试环境默认值:
  # default = "https://google.com/auth/test"
}

如果存在多语言版本的同类模板,只需要给每个语言模板的templatefile函数都传入相同的authBaseUrl参数即可,无需重复修改硬编码地址。

内容的提问来源于stack exchange,提问作者cloudbud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:27:04