go - 如何在 Terratest Terraform 设置中覆盖远程状态

标签 go terraform terraform-provider-aws

我试图了解如何覆盖 Terraform 后端(在我的例子中是远程状态)并在设置 Terratest Terraform 测试时使用本地状态。

我正在使用 Terratest 测试一些 Terraform 代码,我们在 s3 中远程管理状态。在 Terratest 期间,我想使用本地状态,但在“terraform init”状态期间,它找不到覆盖它的方法。

任何帮助将不胜感激

最佳答案

Terraform 允许 command line options to control backend configuration .由于您使用的是 Terratest,因此您必须通过这些 backend optionsInit .

package terraform

import (
    "fmt"
    "testing"
)

// InitE calls terraform init and return stdout/stderr.
func InitE(t *testing.T, options *Options) (string, error) {
    args := []string{"init", fmt.Sprintf("-upgrade=%t", options.Upgrade)}
    args = append(args, FormatTerraformBackendConfigAsArgs(options.BackendConfig)...)
    return RunTerraformCommandE(t, options, args...)
}

关于go - 如何在 Terratest Terraform 设置中覆盖远程状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238612/

相关文章:

amazon-web-services - Terraform - AWS - 如何防止 EBS 卷被删除?

EC2 资源的 Terraform 动态标记失败,带有 `Blocks of type "标记“不在此处”

Terraform 0.11.1 不支持状态版本 4

go - 为什么是 "err != nil"?

database - 如何知道查询中是否检索到行 | Clickhouse 和 Golang

lambda - 使用 terraform 的自定义 API 网关授权器

ssl-certificate - Terraform 不断强制重新创建 aws_iam_server_certificate 资源

go - http.Hijacker 的返回值是什么?

去 channel 准备

aws-lambda - AWS IAM 执行角色无权在 EC2 上为特定 VPC 调用 CreateNetworkInterface