Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen

Ich musste mit Terraform viele Ressourcen hinzufügen, daher war es schwierig, sie zu kopieren und einzufügen. Das ist also ein Memo.

Bereiten Sie zunächst eine Vorlagendatei vor. Setzen Sie den Ort, an dem Sie eine Variable erstellen möchten, auf "@ NAME @" "@ PATH @" "@ HOST @".

template.tf


resource "google_monitoring_uptime_check_config" "@NAME@" {
  display_name = "@NAME@"
  timeout      = "10s"

  http_check {
    use_ssl = true
    path    = "@PATH@"
    port    = "443"
  }

  monitored_resource {
    type = "uptime_url"

    labels = {
      project_id = var.project_id
      host       = "@HOST@"
    }
  }
}

Erstellen Sie mit csv den Wert, den Sie an die Variable übergeben möchten.

source.csv


aaa_bbb_com,/,aaa.bbb.com
aaa_bbb_jp,/hoge,aaa.bbb.jp
aaa_bbb_co_jp,/hage,aaa.bbb.co.jp

Führen Sie Python aus


# python mkfile.py source.csv template.txt

Es ist eine der erstellten Dateien

resource "google_monitoring_uptime_check_config" "aaa_bbb_co_jp" {
  display_name = "aaa_bbb_co_jp"
  timeout      = "10s"

  http_check {
    use_ssl = true
    path    = "/hage"
    port    = "443"
  }

  monitored_resource {
    type = "uptime_url"

    labels = {
      project_id = var.project_id
      host       = "aaa.bbb.co.jp"
    }
  }
}

Wenn Sie die Dateien kombinieren möchten,

cat create* > result.tf

Code ausgeführt

mkfile.py


# -*- coding: utf-8 -*-
import os, sys ,csv

def mkFile(srcFname, tmplFname):
    with open(srcFname) as c:
        reader = csv.reader(c)
        for row in reader:
            f1 = open(tmplFname, "r")
            f2 = open("create" + row[0] + ".txt", "w")
            for row2 in f1:
                temp = row2.replace("@NAME@", row[0]) \
                          .replace("@PATH@", row[1]) \
                          .replace("@HOST@", row[2]) 
                f2.write(temp)
            f1.close
            f2.close

    
if __name__ == '__main__': 
    if(len(sys.argv)!=3):
        print("usage: python mkfile.py source.csv template.tf")
    
    srcFname = sys.argv[1]
    tmplFname = sys.argv[2]

    #start func
    mkFile(srcFname, tmplFname)
    
    print("finished")

Punkt

                temp = row2.replace("@NAME@", row[0]) \
                          .replace("@PATH@", row[1]) \
                          .replace("@HOST@", row[2]) 

Recommended Posts

Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Ich möchte den Fortschritt in Python anzeigen!
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich möchte eine Datei mit Python zufällig testen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte die Natur von Python und Pip kennenlernen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich möchte Dunnetts Test in Python machen
Ich möchte mit Python ein Fenster erstellen
Dynamisches Ersetzen der nächsten Methode in Python
Ich möchte mit Python in eine Datei schreiben
Die mit vim bearbeitete Datei war schreibgeschützt, aber ich möchte sie speichern
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte den Dateinamen von DataLoader sehen
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich möchte Timeout einfach in Python implementieren
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Auch mit JavaScript möchte ich Python `range ()` sehen!
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Python: Kann in Lambda wiederholt werden
Ich möchte am Ende etwas mit Python machen
Ich möchte Strings in Kotlin wie Python manipulieren!
Ich möchte nur das 95% -Konfidenzintervall des Unterschieds im Bevölkerungsverhältnis in Python ermitteln
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Versuchen Sie es mit GUI, PyQt in Python
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Ich möchte eine andere Version von Python mit pyvenv angeben
maya Python Ich möchte die gebackene Animation wieder reparieren.
Ich möchte so etwas wie Uniq in Python sortieren
Ändern Sie das Standardausgabeziel in eine Datei in Python
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Zeigen Sie Zahlen und Zeichen an, die Variablen im Python-Druck zugewiesen sind
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
[Python] Ich möchte die Option -h mit argparse verwenden
[Python] Ich habe das Spiel von pip installiert und versucht zu spielen
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Ich habe es in der Sprache Go geschrieben, um das SOLID-Prinzip zu verstehen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen