| variable "ami" { |
| type = string |
| default = "ami-test" |
| } |
| |
| variable "id_minimum_length" { |
| type = number |
| default = 10 |
| } |
| |
| resource "test_instance" "foo" { |
| ami = var.ami |
| |
| lifecycle { |
| precondition { |
| condition = can(regex("^ami-", var.ami)) |
| error_message = "Invalid AMI ID: must start with \"ami-\"." |
| } |
| } |
| } |
| |
| resource "test_instance" "bar" { |
| ami = "ami-boop" |
| |
| lifecycle { |
| postcondition { |
| condition = length(self.id) >= var.id_minimum_length |
| error_message = "Resource ID is unacceptably short (${length(self.id)} characters)." |
| } |
| } |
| } |
| |
| output "foo_id" { |
| value = test_instance.foo.id |
| |
| precondition { |
| condition = test_instance.foo.ami != "ami-bad" |
| error_message = "Foo has a bad AMI again!" |
| } |
| } |