【问题标题】:Parsing error Terraform解析错误 Terraform
【发布时间】:2021-05-24 18:35:44
【问题描述】:

因此,我尝试在我的 Mac(运行 Sierra 和 Terraform 0.11.5)上使用 Terraform 启动 EC2 实例,但不断出现一些错误:

命令:地形计划

错误:解析 /Users/*****/terraform/aws.tf 时出错:在 1:11:非法字符

命令:terraform show

错误:加载后端失败:加载后端配置时出错:解析 /Users/******/terraform/aws.tf 时出错:在 1:11:非法字符

这是我的文件的样子:

provider "aws" {
    region = "us-east-1"
    access_key = ""
    secret_key = "********"
}

resource "aws_key_pair" "nick-key" {
    key_name = "nick-key"
    public_key = "ssh-rsa ********************************************"
}

resource "aws_instance" "web" {
    ami = "ami-1853ac65"
    instance_type = "t2.micro"
    key_name = "${aws_key_pair.nick-key.key_name}"

我用 * 代替了文件中使用的真实信息,以防有人想知道。任何帮助将不胜感激!!提前谢谢!

【问题讨论】:

  • 另外,这是我用来做这个项目的教程,但感觉他遗漏了关键步骤,这可能是我遇到问题的原因? youtube.com/watch?v=mQ9QDESqZ9o
  • 这是整个文件吗?它最后缺少一个花括号
  • 哦,伙计,缺少的卷曲正是它无法正常工作的原因。它总是我似乎想念的最简单的事情。谢谢斯蒂芬!

标签: amazon-ec2 terraform


【解决方案1】:

回答问题,同时提供有关如何确保格式正确的反馈。

如评论中所述,该示例缺少右花括号

resource "aws_instance" "web" {
    ami = "ami-1853ac65"
    instance_type = "t2.micro"
    key_name = "${aws_key_pair.nick-key.key_name}"
}

Terraform 有一个validate 命令可以检查这些格式问题。如果你运行上面的例子,你会看到

$ terraform validate
Error: Error parsing test.tf: object expected closing RBRACE got: EOF

【讨论】:

    【解决方案2】:

    确保您从终端调用正确版本的 terraform。

    我在使用 terraform v11 运行为 terraform v12 编写的脚本时遇到了这样的解析错误。

    如果您安装了两个版本的 terraform,有时这很容易做到。

    确保您已在 bash 配置文件(或适当的 shell 配置文件)中设置了每个别名,并且使用了正确的命令。

    我倾向于在我的工作环境中进行以下设置:

    alias terraform='/usr/local/bin/terraform'  #points to terraform 12 installation
    alias terraform11='/usr/local/bin/terraform11'  
    

    【讨论】:

      猜你喜欢
      • 2020-10-29
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 2016-11-29
      • 2021-09-13
      • 1970-01-01
      相关资源
      最近更新 更多