埋め込み属性をできるだけ使用しない
ルール
Do not use embedded attributes as much as possible. (e.g., ingress/egress within security groups)
(埋め込み属性をできるだけ使用しない(例: セキュリティグループ内の ingress/egress))
解説
埋め込み属性は可読性が悪い・ループなどの操作がしづらい・更新時に一時的に削除されることがあるなど、使いづらさが目立つため、極力使わないようにします。
サンプルコード
resource "aws_security_group" "web" {
name = "${var.environment}-${var.project}-web-sg"
description = "Webサーバー用セキュリティグループ"
vpc_id = var.vpc_id
}
resource "aws_security_group_rule" "web_https_ingress" {
type = "ingress"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = aws_security_group.web.id
}
resource "aws_security_group_rule" "web_egress" {
type = "egress"
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = aws_security_group.web.id
}
参考リンク
Show Text to Share埋め込み属性をできるだけ使用しない https://www.tricrow.com/infrastructure/development-guidline/coding_standards.style.resource.html

