我如何在一个变量传递到XML文件(通过Terraform)?



我有一个XML文件,用于配置与我正在使用的应用程序的数据库连接。但是,它需要我的数据库密码,该密码作为AWS参数存储。我知道如何将Terraform中的变量传递给用户数据脚本,但是如何将其传递给XML文件呢?

这是我相关的Terraform代码:

# 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)
}

在我的locals值中,我将SSM参数(即我的密码)分配给变量db_password,现在我如何在xml文件中使用该变量?

dbconfig.xml:

<?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> <--- db_password variable
<connection-properties>tcpKeepAlive=true;socketTimeout=240</connection-properties>
</jdbc-datasource>
</jira-database-config>

你可以在模板中引用你的db_password作为TF变量,因为你将它作为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>

最新更新