TerraformでALBのリスナーの記述方法を修正
|
terraform plan
を実行すると、下記のようなエラーが発生しました。
Warning: "condition.0.field": [DEPRECATED] use 'host_header' or 'path_pattern' attribute instead
on alb.tf line 128, in resource "aws_lb_listener_rule" "example":
128: resource "aws_lb_listener_rule" "example" {
リスナーの記述方法を修正することで解決したので、情報をまとめます。
エラーの原因
下記のようにALBのリスナーを設定していました。
// "aws_lb_listener_rule" forwards the request to target_group.
resource "aws_lb_listener_rule" "example" {
listener_arn = aws_lb_listener.http.arn
priority = 100 // The lower the number, the higher the priority.
// "action" defines the target group of the request destination.
action {
type = "forward"
target_group_arn = aws_lb_target_group.example.arn
}
// "condition" specifies the condition.
// "/*" matches on all paths.
condition {
field = "path-pattern"
values = ["*"]
}
}
リスナーは、ALBにたどり着いたアクセスをEC2やECS、Fargateに転送するための設定を定義できます。
ALBの仕様変更に伴い、このリスナーの condition
というフィールドの記述方法を修正する必要があるみたいでした。
Provide migration path from the old
condition.field
andcondition.values
keys and deprecate themhttps://github.com/terraform-providers/terraform-provider-aws/pull/8268
エラーの修正
下記のように修正します。
# ↓これを
condition {
field = "path-pattern"
values = ["*"]
}
↓
# ↓このように修正
condition {
path_pattern {
values = ["*"]
}
}
まとめ
少しずつterraformとAWSの理解が深まってきました。やったね!