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

如何通过Terraform将AWS SSM存储的数据库密码传入XML文件?

解决方案

你需要调整两个地方来实现将SSM参数中的密码注入到XML配置文件中:

1. 修正Terraform中templatefile的参数传递

当前代码里传递给templatefile的db_password是SSM参数的整个对象,我们需要的是参数的实际值。修改locals块如下:

# My DB Password that is stored on AWS
data "aws_ssm_parameter" "db_password" {
  name = "terraform/db-password"
}

# Creating a locals value from my dbconfig.xml file
locals {
  dbconfig = templatefile("${path.module}/../../templates/dbconfig.xml", {
    db_password = data.aws_ssm_parameter.db_password.value
  })
}

关键是添加.value,以此获取SSM参数对应的实际密码字符串。

2. 修改XML模板的变量引用语法

Terraform模板文件使用${变量名}的语法引用传入的变量,因此需要把dbconfig.xml里硬编码的db_password替换为模板变量:

<?xml version="1.0" encoding="UTF-8"?>

<jira-database-config>
  <name>defaultDS</name>
  <database-type>postgresaurora96</database-type>
  <jdbc-datasource>
    <driver-class>org.postgresql.Driver</driver-class>
    <username></username>
    <password>${db_password}</password>
    <connection-properties>tcpKeepAlive=true;socketTimeout=240</connection-properties>
  </jdbc-datasource>
</jira-database-config>

完成以上两处修改后,Terraform渲染模板时会自动将SSM中的数据库密码替换到XML的<password>标签内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:25:28