gpt4 book ai didi

执行计划时 Terraform 输出 'Error: Variables not allowed'

转载 作者:行者123 更新时间:2023-12-04 01:38:05 27 4
gpt4 key购买 nike

我在 variables.tf 中声明了一个变量,如下所示:

variable "MyAmi" {
type = map(string)
}

但是当我这样做时:
terraform plan -var 'MyAmi=xxxx'

我得到:
Error: Variables not allowed

on <value for var.MyAmi> line 1:
(source code not available)

Variables may not be used here.

最小代码示例:

测试文件
provider "aws" {
}

# S3
module "my-s3" {
source = "terraform-aws-modules/s3-bucket/aws"

bucket = "${var.MyAmi}-bucket"
}

变量.tf
variable "MyAmi" {
type = map(string)
}
terraform plan -var 'MyAmi=test'
Error: Variables not allowed

on <value for var.MyAmi> line 1:
(source code not available)

Variables may not be used here.

有什么建议么?

最佳答案

我看到两件事可能会导致您看到的错误。链接到 terraform plan documentation

  • 运行 terraform plan 时,它​​会自动加载当前目录中的任何 .tfvars 文件。如果您的 .tfvars 文件在另一个目录中,您必须将其作为 -var-file 参数提供。您在问题中说您的变量位于文件 variables.tf 中,这意味着 terraform plan 命令不会自动加载该文件。修复:将 variables.tf 重命名为 variables.tfvars
  • 使用 -var 参数时,您应该确保传递给它的内容会被 HCL 正确解释。如果您尝试传入的变量是映射,则它需要可解析为映射。

  • 而不是 terraform plan -var 'MyAmi=xxxx' 我希望更像 terraform plan -var 'MyAmi={"us-east-1":"ami-123", "us-east-2":"ami-456"}'

    有关声明变量和专门通过命令行传递它们的更多信息,请参阅此 documentation

    关于执行计划时 Terraform 输出 'Error: Variables not allowed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712999/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com