TerraformでALBのリダイレクトルールの書き方

AWS, Terraform15 December 2020

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で記載する場合は_ (アンダースコア)を- (ハイフン)にする仕様なのかな。

tags: AWS, Terraform