Heim >Backend-Entwicklung >Golang >Wie übergebe ich „ApplyConfig' an „tf.Apply()' in „hashicorp/terraform-exec'?

Wie übergebe ich „ApplyConfig' an „tf.Apply()' in „hashicorp/terraform-exec'?

王林
王林nach vorne
2024-02-09 10:50:29450Durchsuche

如何将 `ApplyConfig` 传递给 `hashicorp / terraform-exec` 中的 `tf.Apply()`?

php-Editor Yuzi erklärt Ihnen, wie Sie „ApplyConfig“ an „tf.Apply()“ in „hashicorp/terraform-exec“ übergeben. Wenn Sie „hashicorp/terraform-exec“ für Terraform-Bereitstellungen verwenden, können Sie das Verhalten von „tf.Apply()“ konfigurieren, indem Sie ein „ApplyConfig“-Objekt erstellen. Dieses Objekt wird dann für den entsprechenden Bereitstellungsvorgang an die Methode „tf.Apply()“ übergeben. Auf diese Weise können Sie den Bereitstellungsprozess flexibel steuern und individuelle Konfigurationsanforderungen umsetzen. In tatsächlichen Anwendungen können Sie die Eigenschaften des „ApplyConfig“-Objekts entsprechend den spezifischen Geschäftsanforderungen festlegen, um den besten Bereitstellungseffekt zu erzielen.

Frageninhalt

Ich versuche, target zum terraform apply-Befehl hinzuzufügen, indem ich Golang SDK in hashicorp/terraform-exec

verwende Idealerweise ist der entsprechende Befehl für cli

terraform apply --auto-approve --target 'module.example'

Wenn ich jedoch

zur Funktion hinzufüge, erhalte ich die folgende Fehlermeldung. applyoptions{} 中的 targets 传递给 apply()

Kann jemand darauf hinweisen, was ich hier mache?

package main

import (
    "context"

    "github.com/hashicorp/terraform-exec/tfexec"
)

func main() {
    // create a new tfexec.executor instance
    tf, err := tfexec.newterraform("/path/to/terraform/binary")
    if err != nil {
        panic(err)
    }
    err = tf.init(context.background(), tfexec.upgrade(true))
    if err != nil {
        panic(err)
    }
    // define the targets you want to apply
    targets := []string{"module.example", "module.another_example"}

    // create an applyoption with the targets
    applyoption := tfexec.applyoption{
        targets: targets,
    }

    // apply the terraform configuration with the defined targets
    err = tf.apply(context.background(), applyoption)
    if err != nil {
        panic(err)
    }
}

Fehleranzeige,

invalid 复合文字类型 tfexec.applyoptioncompiler

go run test.go # command-line-arguments ./test.go:23:17: invalid composite literal type tfexec.ApplyOption

Lösung

Ich denke, Folgendes sollte funktionieren:

targets := []tfexec.ApplyOption{
        tfexec.Target("module.example"),
        tfexec.Target("module.another_example"),
    }

    // Apply the Terraform configuration with the defined targets
    err = tf.Apply(context.Background(), targets...)
    if err != nil {
        panic(err)
    }

Das obige ist der detaillierte Inhalt vonWie übergebe ich „ApplyConfig' an „tf.Apply()' in „hashicorp/terraform-exec'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen