ALBでリダイレクトを実装するとき、 Terraformのconditionの書き方が特殊な仕様だったのでメモしておきます。
resource "aws_lb_listener_rule" "redirect" {
listener_arn = リスナーのARN
priority = プライオリティ
action {
type = "redirect"
redirect {
host = "www.example.com"
path = "/#{path}"
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
condition {
field = "path-pattern"
values = "/hoge"
}
}
上記の書き方で、「/hoge」を「www.example.com/hoge」に転送できます。
ポイントはcondition部分の書き方。
field = xxx
value = yyy
で指定していますが、公式のTerraformドキュメントは以下のような書き方でした。
condition {
path_pattern {
values = ["/hoge"]
}
}
filedで記載する場合は_ (アンダースコア)を- (ハイフン)にする仕様なのかな。