簡體   English   中英

如何將變量傳遞給 XML 文件(通過 Terraform)?

[英]How can I pass in a variable to an XML file (via 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)
}

在我的本地值中,我將作為我密碼的 SSM 參數分配給變量db_password ,現在我如何在我的 xml 文件中使用該變量?

數據庫配置.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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM