如何在Terraform EC2启动模板用户数据中使用templatefile?

时间:2019-12-16 14:21:36

标签: terraform

我正在使用用户数据powershell脚本设置EC2启动模板,并希望能够在脚本本身中使用templatefile。我能够使用自动缩放启动配置来执行此操作,因为它接受用户数据作为字符串。使用EC2启动模板,它要求它是base64编码的字符串,并且它似乎不接受:

user_data = "${base64encode(<<EOF
  <powershell>
  $file_content = @"
  ${templatefile("myfile.txt", var.myfilevars)}
  "@
  </powershell>
EOF"
)}"

以上是否有可行的变体?还是另一种方式来实现这一目标?

1 个答案:

答案 0 :(得分:2)

我认为您可能会有一个额外的双引号",尤其是在EOF之后的那一个。

尝试一下:

user_data = "${base64encode(<<EOF
  <powershell>
  $file_content = @"
  ${templatefile("myfile.txt", var.myfilevars)}
  "@
  </powershell>
EOF
)}"