コンテンツにスキップ

Terraform で Git コミットの SHA を取得する

Terraform のリソースを作る際に Git のコミットの SHA を取得して、その値をリソースに設定したい場合がある。 external データソースを使うと、外部プログラムの実行結果を Terraform の変数に設定できる。

1
2
3
4
5
6
7
8
9
data "external" "git" {
  program = [
    "git",
    "log",
    "--pretty=format:{ \"sha\": \"%h\" }",
    "-1",
    "HEAD"
  ]
}

上の例では、git log コマンドを実行して、その結果を JSON 形式で出力している。%h は Git のコミットの SHA の short 形式を表す。 実際に使う例が次のようになる。

git shagit sha使用例
1
2
3
resource "aws_s3_bucket" "bucket" {
  bucket = "my-bucket-${data.external.git.result.sha}"
}