首页 > 解决方案 > 如何在 terraform EC2 启动模板用户数据中使用模板文件?

问题描述

我正在使用用户数据 powershell 脚本设置 EC2 启动模板,并希望能够在脚本本身中使用 templatefile。我能够通过自动缩放启动配置来做到这一点,因为它接受用户数据作为字符串。对于 EC2 启动模板,它要求它是一个 base64 编码的字符串,它似乎不接受这一点:

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

是否有上述的变化会起作用?或者另一种方式来实现这一点?

标签: terraform

解决方案


我想你可能有一个额外的双引号",特别是在你之后的那个EOF

尝试这个:

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

推荐阅读