2

我对 Terraform 基础架构进行了简单的回归测试。此 Terraform 基础结构包含许多资源,包括 Azure Keyvault。由于启用软删除已成为 Azure Keyvault 的默认设置,因此会导致自动回归出现问题,其中以 CI/CD 方式创建、断言和销毁资源。

基本的 Terratest 看起来像这样

testpackage test

import (
    "testing"

    "github.com/gruntwork-io/terratest/modules/terraform"
    "github.com/stretchr/testify/assert"
)

// An example of how to test the simple Terraform module in examples/basic using Terratest.
func TestTerraformBasicExample(t *testing.T) {

    // Test specific variables
    projectName := "automated0test"

    // Assertion variables
    expectedText := "testOutputName"

    terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{
        // The path to where our Terraform code is located
        TerraformDir: "../../examples/basic",

        // Variables to pass to our Terraform code using -var options
        Vars: map[string]interface{}{
            "project": projectName,
        },

        // Disable colors in Terraform commands so its easier to parse stdout/stderr
        NoColor: true,
    })

    // At the end of the test, run `terraform destroy` to clean up any resources that were created
    defer terraform.Destroy(t, terraformOptions)

    // This will run `terraform init` and `terraform apply` and fail the test if there are any errors
    terraform.InitAndApply(t, terraformOptions)

    // Run `terraform output` to get the values of output variables
    actualTextExample := terraform.Output(t, terraformOptions, "static_storage_account_name")

    // Verify we're getting back the outputs we expect
    assert.Equal(t, expectedText, actualTextExample)

}

我收到以下错误:

TestTerraformBasicExample 2021-02-25T09:41:17Z retry.go:99: Returning due to fatal error: FatalError{Underlying: error while running command: exit status 1; 

Error: purging Secret "placeholder" (Key Vault "https://placeholder"): keyvault.BaseClient#PurgeDeletedSecret: Failure responding to request: StatusCode=409 -- 

Original Error: autorest/azure: Service returned an error. Status=409 Code="Conflict" Message="Secret is currently being deleted." InnerError={"code":"ObjectIsBeingDeleted"}
4

0 回答 0