Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menghantar `ApplyConfig` kepada `tf.Apply()` dalam `hashicorp/terraform-exec`?

Bagaimana untuk menghantar `ApplyConfig` kepada `tf.Apply()` dalam `hashicorp/terraform-exec`?

王林
王林ke hadapan
2024-02-09 10:50:29442semak imbas

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

editor php Yuzi akan menerangkan kepada anda cara menghantar `ApplyConfig` kepada `tf.Apply()` dalam `hashicorp/terraform-exec`. Apabila menggunakan `hashicorp/terraform-exec` untuk penggunaan Terraform, anda boleh mengkonfigurasi gelagat `tf.Apply()` dengan mencipta objek `ApplyConfig`. Objek ini kemudiannya dihantar ke kaedah `tf.Apply()` untuk operasi penggunaan yang sesuai. Dengan cara ini, anda boleh mengawal proses penempatan secara fleksibel dan melaksanakan keperluan konfigurasi tersuai. Dalam aplikasi sebenar, anda boleh menetapkan sifat objek `ApplyConfig` mengikut keperluan perniagaan tertentu untuk mencapai kesan penggunaan yang terbaik.

Kandungan soalan

Saya cuba menambah target ke terraform apply ​​​​arahan menggunakan golang sdk dalam hashicorp/terraform-exec

Sebaik-baiknya perintah yang setara untuk cli ialah

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

Walau bagaimanapun, apabila saya menambah

pada fungsi, saya mendapat ralat berikut. applyoptions{} 中的 targets 传递给 apply()

Bolehkah seseorang menunjukkan apa yang saya lakukan di sini?

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

Paparan ralat,

invalid 复合文字类型 tfexec.applyoptioncompiler

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

Penyelesaian

Saya rasa perkara berikut sepatutnya berkesan:

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

Atas ialah kandungan terperinci Bagaimana untuk menghantar `ApplyConfig` kepada `tf.Apply()` dalam `hashicorp/terraform-exec`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam