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'?

王林
Freigeben: 2024-02-09 10:50:29
nach vorne
454 Leute haben es durchsucht

如何将 `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)
    }
}
Nach dem Login kopieren

Fehleranzeige,

invalid 复合文字类型 tfexec.applyoptioncompiler

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

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)
    }
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage