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

Pat*_*ead 0 terraform

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

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

上述内容是否有可行的变体?或者另一种方式来实现这一点?

小智 5

我认为您可能有一个额外的双引号",特别是在您的EOF.

尝试这个:

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