Cấu hình tính năng Variable Validation trong Terraform – Cuongquach.com | Chúng ta sẽ thử tính năng mới của Terraform từ phiên bản “0.13.0” mang tên: Variable Validation. Tính năng này sẽ giúp cho bạn kiểm tra điều kiện đầu vào của các variable mà bạn mong muốn sử dụng. Lưu ý: tính năng này chỉ hỗ trợ từ Terraform 0.13.0 trở lên nhé.
Cấu hình sử dụng Variable Validation trong Terraform
Cú pháp:
variable "name" { description = "Something" validation { condition = rule error_message = "Your message" } }
Lưu ý:
– Ở phần condition
bạn có thể kết hợp một hoặc nhiều nội dung kiểm tra lại với nhau. Nếu kết quả kiểm tra là true
thì là pass phần kiểm tra điều kiện, nếu kết quả kiểm tra là false
thì sẽ xuất thông báo lỗi trong error_message
.
Kiểm tra phiên bản Terraform binary.
# terraform --version Terraform v0.13.5
Code đơn giản nội dung khởi tạo một AWS EC2 Instance.
# main.tf terraform { required_version = ">= 0.13.0" } provider "aws" {} data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] # Canonical } resource "aws_instance" "web" { ami = data.aws_ami.ubuntu.id instance_type = var.instance_type tags = { Name = "CuongQuach-Lab" } }
# variables.tf variable "instance_type" { description = "Instance type" type = string validation { condition = contains(["t3.micro", "t3.small", "t3.medium"], var.instance_type) error_message = "Your input instance type is not allowed." } }
# terraform.auto.tfvars instance_type = "t3.large"
Bạn có thể thấy trong file variables.tf
, ở phần khai báo variable instance_type
, mình có set điều kiện cụ thể là chỉ những instance_type nằm trong danh sách: t3.micro, t3.small, t3.medium. Mới được phép sử dụng, còn nếu ngoài sẽ xuất thông báo lỗi như error_message
.
Chạy thử nhé.
# terraform init # terraform plan Error: Invalid value for variable on variables.tf line 1: 1: variable "instance_type" { Your input instance type is not allowed. This was checked by the validation rule at variables.tf:5,3-13.
Dễ hiểu phải không nào.
Nguồn: https://vinastar.com/