2 min read | by Jordi Prats
On terraform, besides returning some information to the user, returning data as output can be used as an input for terraform code that needs to use a resource created by another team.
On the terraform code that creates the resource, we will have to set the variable and it's value:
output endpoint {
vpc_id = aws_vpc.databases.id
}
Then, on the code that uses this resource we will have to declare the tfstate as a data source using terraform_remote_state
Assuming the terraform state resides on an S3 bucket we would have to define it as follows:
data "terraform_remote_state" "network" {
backend = "s3"
config = {
bucket = var.terraform_remote_state_s3_bucket
key = var.terraform_remote_state_s3_network_tfstate
region = "eu-west-1"
}
}
Once it is defined we will be able to use it as any other resource:
module "demo-service" {
(...)
vpc_id = data.terraform_remote_state.network.outputs.vpc_id
}
Posted on 11/03/2021