Terraform: adding depends_on to your custom modules

Association between some resources is deferred and takes some time. If you don’t explicitly pass the association resource as a variable to your custom module, terraform might fail to provision. Terraform’s modules do not support depends_on out of the box, but it is not difficult to emulate it.

# File fancy-app-module/variables.tf
variable depends_on { default = [], type = "list"}

# File my-app.tf
module "app" {
source = "modules/fancy-app-module"
    # Wait for resources and associations to be created
depends_on = [
resource "aws_alb_target_group" "app" {
name = "app-group"
resource "aws_alb_listener" "front_end" {
# Association of default_action takes some time and
# if this action is required by you module, it's creation
# might fail due to async provisioning of the
# resources by terraform
default_action {
target_group_arn = "${aws_alb_target_group.app.id}"
type = "forward"
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.