Terraform-在本地exec provisioner中使用Heredoc时出现协议错误

Terraform-在本地exec provisioner中使用Heredoc时出现协议错误,terraform,heredoc,hcl,Terraform,Heredoc,Hcl,我正在使用一个heredoc来允许Terraform本地exec provisioner中的多行。由于某种原因,当我使用创建新文件时,我得到了一个协议错误 我尝试过用单/双qoutes包装它,但没有效果。但是,它确实可以作为单行命令使用命令=“>foo” 如何在地形中使用 系统信息: [vagrant@rhel7 terraform-main]$ terraform --version Terraform v0.12.7 + provider.aws v2.27.0 盐酸: 看起来foo被视为

我正在使用一个heredoc来允许Terraform本地exec provisioner中的多行。由于某种原因,当我使用
创建新文件时,我得到了一个
协议错误

我尝试过用单/双qoutes包装它,但没有效果。但是,它确实可以作为单行命令使用<代码>命令=“>foo”

如何在地形中使用

系统信息:

[vagrant@rhel7 terraform-main]$ terraform --version
Terraform v0.12.7
+ provider.aws v2.27.0
盐酸:

看起来
foo
被视为一个命令

我注意到,
touch
具有类似的结果

command = <<EOT
  touch foo
EOT

对于第一个错误,在这种情况下,您的shell解释器会将
foo
视为一个命令。@MattSchuchard,那么如何在herdoc中创建文件呢?这会容易得多:@MattSchuchard,这将不起作用,因为我创建的文件是用于配置此资源的清单文件。这将是一个循环依赖。
Error: Error running command '      > foo
: Protocol error. Output: /bin/sh: foo
command = <<EOT
  touch foo
EOT
Error: Error running command '      touch foo
': exit status 1. Output: touch: cannot touch ‘foo\r’: Protocol error