The null resource in Terraform
The null resource in Terraform is useful for a variety of one off use cases.
Using the null resource in Terraform to Guarantee Uniqueness (of identifiers)
Null Resource Usefulness 1 - Unique SSM Doc Name
# null resource - to ensure unique SSM doc name for each run
resource "null_resource" "nullres" {
# not spinning up anything.
}
# SSM doc
resource "aws_ssm_document" "my_ssm_doc" {
name = "certbot_${null_resource.nullres.id}"
document_type = "Command"
document_format = "YAML"
content = file("./ec2_init.yaml")
}
Null Resource Usefulness 2 - To call an external script - e.g. to call a provisioner script
resource "null_resource" "execfile"
{ provisioner "local-scripts"
{ command = "${path.module}/hello.sh" interpreter = ["/bin/bash"]
}
}
Null Resource Usefulness 3 - Using the Null Resource in Terraform to Introduce a delay
resource "null_resource" "before" {
}
resource "null_resource" "delay" {
provisioner "local-exec" {
command = "sleep 10"
}
triggers = {
"before" = "${null_resource.before.id}"
}
}
resource "null_resource" "after" {
depends_on = ["null_resource.delay"]
}
Leave a Reply