登录
首页 >  Golang >  Go问答

Terratest中的terraform.Options与terraform.tfvars中的变量传递有何不同?

来源:stackoverflow

时间:2024-02-15 13:42:24 371浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Terratest中的terraform.Options与terraform.tfvars中的变量传递有何不同?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我得到 terraform.options 是为了测试目的,但是当我的 terratest 可以从 tfvars 文件中获取变量值时,它的目的是什么?我怎样才能发挥它的最大能力?

此外,tfvars 中的大多数变量都是嵌套的。我如何在 terraform.options 中映射它?

#variable in tfvars
resource_group = {
  resource_group1 = { 
    rg_name = "terratest1"
    #resource group location
    location = "us"
    #tags
    tags = {
      foo = "foo"
      bar = "bar"
    }
  }
  resource_group2= {
    rg_name  = "terratest2"
    location = "us"
    tags = {
      foo = "foo"
      bar = "bar"
    }
  }
}
#how would I map in terraform.Options?
    terraformOptions := &terraform.Options{
        // The path to where our Terraform code is located
        TerraformDir: "../../examples/azure/terraform-azure-resourcegroup-example",
        Vars: map[string]interface{}{
            "postfix": uniquePostfix,
        },
    }

正确答案


我得到 terraform.options 是为了测试目的,但是当我的 terratest 可以从 tfvars 文件中获取变量值时,它的目的是什么?

测试的重要方面之一是改变输入,并根据这些输入验证行为和输出。您可以使用 terraform.options 向模块提供各种输入,然后确定模块的行为和输出是否符合预期。如果这是根模块配置,那么该值会显着减小。如果这是一个可重用且经常声明的模块,那么就有很大的价值。

我如何在 terraform.options 中映射它?

使用嵌套类型构造函数最容易:

terraformOptions := &terraform.Options{
    // path to terraform module
    TerraformDir: "../../examples/azure/terraform-azure-resourcegroup-example",
    // map of input variables to module
    Vars: map[string]interface{}{
        "resource_group1":  map[string]interface{}{
            "rg_name":  "Terratest1",
            "location": "us",
            "tags ":    map[string]string{
                "foo": "foo",
                "bar": "bar",
            },
        },
        "resource_group2":  map[string]interface{}{
            "rg_name":  "Terratest2",
            "location": "us",
            "tags ":    map[string]string{
                "foo": "foo",
                "bar": "bar",
            },
        },
    },
}

终于介绍完啦!小伙伴们,这篇关于《Terratest中的terraform.Options与terraform.tfvars中的变量传递有何不同?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>