Maison > développement back-end > Golang > le corps du texte

Comment passer `ApplyConfig` à `tf.Apply()` dans `hashicorp/terraform-exec` ?

王林
Libérer: 2024-02-09 10:50:29
avant
411 Les gens l'ont consulté

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

l'éditeur php Yuzi vous expliquera comment passer `ApplyConfig` à `tf.Apply()` dans `hashicorp/terraform-exec`. Lorsque vous utilisez `hashicorp/terraform-exec` pour les déploiements Terraform, vous pouvez configurer le comportement de `tf.Apply()` en créant un objet `ApplyConfig`. Cet objet est ensuite transmis à la méthode `tf.Apply()` pour l'opération de déploiement appropriée. De cette façon, vous pouvez contrôler de manière flexible le processus de déploiement et mettre en œuvre des besoins de configuration personnalisés. Dans les applications réelles, vous pouvez définir les propriétés de l'objet « ApplyConfig » en fonction des besoins spécifiques de l'entreprise pour obtenir le meilleur effet de déploiement.

Contenu de la question

J'essaie d'ajouter target à la terraform apply ​​​​command en utilisant golang sdk dans hashicorp/terraform-exec

Idéalement, la commande équivalente pour cli est

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

Cependant, lorsque j'ajoute

à la fonction, j'obtiens l'erreur suivante. applyoptions{} 中的 targets 传递给 apply()

Quelqu'un peut-il m'indiquer ce que je fais ici ?

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)
    }
}
Copier après la connexion

Affichage d'erreur,

invalid 复合文字类型 tfexec.applyoptioncompiler

go run test.go # command-line-arguments ./test.go:23:17: invalid composite literal type tfexec.ApplyOption
Copier après la connexion

Solution

Je pense que ce qui suit devrait fonctionner :

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)
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!