I'm not sure where I'm going wrong with this error. I have a Terraform resource that creates a template_file used in a launch configuration. The resource is below:
Template File
data "template_file" "user_data" {
count = "${(var.enable ? 1 : 0) * var.number_of_zones}" // 3 templates being created
template = "${file("userdata.sh")}"
vars {
ebs_volume = "${count.index == 0 ? ${var.EBS_VOLUME1} : ${var.EBS_VOLUME2}}"
}
}
The template_file is being used to launch a script that mounts an EBS to an instance upon startup via autoscaling events. Below is the script:
userdata.sh
#!/bin/bash
# Attach EBS volume
aws ec2 attach-volume --volume-id "${EBS_VOLUME}" --instance_id `curl http://169.254.169.254/latest/meta-data/instance-id` --device /dev/sdf
EBS_VOLUME=${ebs_volume}
Upon executing this code, I am getting the following error and cannot understand why:
Error
Error: Error loading autoscaling-group.tf: Error reading config for template_file[user_data]: parse error at 1:22: expected expression but found invalid sequence "$"
Any advice on how I can resolve this would be helpful.