Maison  >  Article  >  développement back-end  >  Comment passer `ApplyConfig` à `tf.Apply()` dans `hashicorp/terraform-exec` ?

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

王林
王林avant
2024-02-09 10:50:29412parcourir

如何将 `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)
    }
}

Affichage d'erreur,

invalid 复合文字类型 tfexec.applyoptioncompiler

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

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)
    }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer