今日は小ネタ。
Terraformでいわゆるタイムスタンプを「YYYYMMDD_hhmmss」形式で出力して、ファイルなどに出力することをやってみました。
Terraformはクラウド上にリソースを作成するという機能が注目されていますが、ローカルファイルを作成することもできます。
タイムスタンプを取得するにはtimestamp()
を呼び出します。
ここで得られた値をいわゆる「YYYYMMDD_hhmmss」形式で出力するにはformatdate()
を呼び出せばよさそうです。
これを使って以下のようなものを作りました。
locals { ts = formatdate("YYYYMMDD_hhmmss", timestamp()) } resource "local_file" "helloworld" { #content = "hello world! at ${formatdate("YYYYMMDD_hhmmss", timestamp())}" content = "hello world! at ${local.ts}\n" filename = pathexpand("~/hello_${local.ts}.txt") }
あとはいつも通り、terraform init
して、terraform plan
、terraform apply
をするとホームディレクトリ以下にhello_+YYYYMMDD_hhmmss.txt
というファイルが作成できます。
azureuser@myVM:~/work/tf$ ls -l ~/ total 8 -rwxrwxr-x 1 azureuser azureuser 32 Sep 18 06:52 hello_20220918_065255.txt drwxrwxr-x 4 azureuser azureuser 4096 Sep 18 05:41 work azureuser@myVM:~/work/tf$ cat ~/hello_20220918_065255.txt hello world! at 20220918_065255 azureuser@myVM:~/work/tf$
時刻はUTCなのが注意点ですね。