I have the following folder structure
├── main.tf
├── modules
│ ├── web-app
│ │ ├── lambda.tf
│ │ ├── outputs.tf
│ │ ├── s3.tf
│ │ ├── sns.tf
│ │ ├── sqs.tf
│ │ └── variables.tf
│ ├── microservice1
│ │ ├── sns.tf
│ │ ├── sqs.tf
│ │ └── variables.tf
...
Inside the web-app I create a SNS topic. Inside the microservice I want to subscribe the queue I create there to the topic I created inside the web-app.
My problem is that I cannot figure out how to pass the arn of the topic from web-app to the microservice1.
How could I achieve that?
>Solution :
You can’t do this from microservice1. You have to do it in your main.tf. So first you instantiate a web-app module in the main.tf. The module outputs sns arn. Then you pass the arn to the instant of microservice module, again in main.tf
In main.tf:
module "sns" {
source = "./modules/web-app"
# other arguments
}
module "microservice1" {
source = "./modules/microservice1"
sns_arn = module.sns.sns_arn
# other arguments
}
for that to work, you have to have output in your web-app:
output "sns_arn" {
value = aws_sns_topic.mytopic.id
}