我有以下文件夹结构
├── main.tf
├── modules
│ ├── web-app
│ │ ├── lambda.tf
│ │ ├── outputs.tf
│ │ ├── s3.tf
│ │ ├── sns.tf
│ │ ├── sqs.tf
│ │ └── variables.tf
│ ├── microservice1
│ │ ├── sns.tf
│ │ ├── sqs.tf
│ │ └── variables.tf
...
在
web-app
中,我创建了一个 SNS 主题。在 microservice
内,我想将我在那里创建的队列订阅到我在 web-app
内创建的主题。
我的问题是我不知道如何将 arn of the topic
从网络应用程序传递到微服务1。
我怎样才能实现这一目标?
您无法从
microservice1
执行此操作。你必须在你的main.tf
中做到这一点。因此,首先在 web-app
中实例化一个 main.tf
模块。模块输出 sns arn。然后,再次将 arn 传递到 microservice
模块的时刻,再次在 main.tf
中
在
main.tf
:
module "web-app" {
source = "./modules/web-app"
# other arguments
}
module "microservice1" {
source = "./modules/microservice1"
sns_arn = module.web-app.sns_arn
# other arguments
}
为了让它发挥作用,你必须在你的
web-app
中输出:
output "sns_arn" {
value = aws_sns_topic.mytopic.id
}
/microservice1/variables.tf
variable "sns_arn" {
description="topic arn from web_app"
}