【问题标题】:Trouble passing variable in terraform apply在 terraform apply 中传递变量时遇到问题
【发布时间】:2022-01-14 03:45:58
【问题描述】:

我正在使用 Terraform Cloud 作为我的后端,版本为 1.1

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
  cloud {
    hostname     = "app.terraform.io"
    organization = "MyOrg"

    workspaces {
      name = "MyWorkspace"
    }
  }
}

我的 HCL 中有一个变量

variable "app_version" {
  description = "The application version to deploy"
  type        = string
}

当我像这样调用terraform apply 时,我正在尝试设置它:-

terraform apply -var="app_version=v0.0.1" 

我收到以下错误。

1 error occurred:
        * Invalid HCL in variable "app_version": At 1:15: Unknown token: 1:15 IDENT v0.0.1

这是什么意思?

【问题讨论】:

    标签: terraform


    【解决方案1】:

    我认为Terraform docs for command line variables 解释得不好,但你基本上需要用双引号将值括起来。因为= 之后传递的值被解释为 Terraform 表达式,而不是常量(这为其他可能性打开了大门)。

    那么,试试吧:

    terraform apply -var 'app_version="v0.0.1"' 
    

    还要注意-var后面不应该有=

    【讨论】:

    • 感谢您的建议。但是,这具有完全相同的结果。
    【解决方案2】:

    Grzegorz 是正确的,但如果您使用的是 Windows 机器,则需要转义双引号,但在每个双引号之前添加一个 \。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2011-06-28
      • 2023-01-16
      相关资源
      最近更新 更多