Mọi resource phải đặt tên theo branch/PR để không trùng, và destroy sạch được khi PR đóng.
hcl
locals { prefix = "pr-${var.pr_number}" }
resource "aws_s3_bucket" "assets" {
bucket = "${local.prefix}-acme-assets" # ten global unique
}Các chỗ thường vướng:
- Tên unique toàn cầu (S3 bucket, domain, ECR repo).
- Resource có prevent_destroy hoặc deletion_protection copy từ production sang.
- Thứ sinh ra gián tiếp mà destroy không dọn: CloudWatch log group, snapshot, ENI còn attach.
Bắt buộc phải có cleanup theo TTL, không phụ thuộc vào việc ai đó nhớ xoá — PR bỏ dở là chuyện bình thường.
bash
# cron: destroy moi workspace pr-* qua 7 ngay khong co commitEnv tạm không cần giống hệt production: dựng bản nhỏ hơn, ít replica, instance type rẻ là đủ cho phần lớn nhu cầu test và rẻ hơn nhiều.