我需要将单词true或false传递给terraform中的数据模板文件。但是,如果我试图提供这个值,由于插值语法的原因,它会出现0或1。我试着按照https://www.terraform.io/docs/configuration/interpolation.html中的建议做https://www.terraform.io/docs/configuration/interpolation.html,但是这会导致\true\,这显然是不对的。与\\false\\ = \false\相同
更复杂的是,我还有一个场景,需要将变量的值传递给它,它可以等于true或false。有什么想法吗?
# control whether to enable REST API and set other port defaults
data "template_file" "master_spark_defaults" {
template = "${file("${path.module}/templates/spark/spark- defaults.conf")}"
vars = {
spark_server_port = "${var.application_port}"
spark_driver_port = "${var.spark_driver_port}"
rest_port = "${var.spark_master_rest_port}"
history_server_port = "${var.history_server_port}"
enable_rest = "${var.spark_master_enable_rest}"
}
}var.spark_master_enable_rest可以是true,也可以是false。我尝试将变量设置为"\\${var.spark_master_enable_rest}\\",但这再次导致了\true\或\false\
编辑1:
以下是所讨论的conf文件的相关部分:
spark.ui.port ${spark_server_port}
# set to default worker random number.
spark.driver.port ${spark_driver_port}
spark.history.fs.logDirectory /var/log/spark
spark.history.ui.port ${history_server_port}
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled ${enable_rest}
spark.master.rest.port ${rest_port}发布于 2019-01-09 06:20:13
最后,我创建了一个云配置脚本来查找/替换文件中的0/1:
part {
content_type = "text/x-shellscript"
content = <<SCRIPT
#!/bin/sh
sed -i.bak -e '/spark.master.rest.enabled/s/0/false/' -e '/spark.master.rest.enabled/s/1/true/' /opt/spark/conf/spark-defaults.conf
SCRIPT
}发布于 2019-01-05 21:32:57
如果我将var值设置为
spark_master_enable_rest="true"然后我得到:
spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400
spark.master.rest.enabled true当我申请的时候。
https://stackoverflow.com/questions/54046003
复制相似问题