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
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")
temp = row2.replace("@NAME@", row[0]) \
.replace("@PATH@", row[1]) \
.replace("@HOST@", row[2])
Recommended Posts