【发布时间】:2020-10-22 20:03:23
【问题描述】:
我正在努力研究如何从一个模块传递输出并使用另一个模块。
我的文件夹结构:
.
├── main.tf
├── modules
│ ├── cloudwatch-event
│ │ ├── basic_event_rule.tf
│ │ ├── basic_event_target.tf
│ │ └── variables.tf
│ └── lambda
│ ├── basic_lambda.tf
│ ├── output.tf
│ ├── lambda.py
│ └── variables.tf
├── lambda
│ ├── main.tf
│ └── variables.tf
└── terraform.tfvar
为了向 lambda 添加调度,我需要在 CloudWatch 模块中使用 Lambda ARN。
lambda - basic_lambda.tf
resource "aws_lambda_function" "lambda_function" {
lambda - 输出.tf
output "lambda_arn" {
value = "${aws_lambda_function.lambda_function.arn}"
在我的 lambda 应用程序模块中,我的主 lambda/main.tf 中有这个
module "cloudwatch-event" {
source = "../modules/cloudwatch-event"
lambda_arn = "${module.lambda.lambda_arn}"
module "lambda" {
source = "../modules/lambda"
我的 lambda/variables.tf 包含 lambda_arn 变量作为字符串
variable "lambda_arn" {
type = "string"
}
根主文件如下所示:
provider "aws" {
region = var.aws_region
}
module "accesskey-lambda" {
source = "./lambda/"
}
运行 TF 我明白了
Error: Missing required argument
on main.tf line 5, in module "accesskey-lambda":
5: module "accesskey-lambda" {
The argument "lambda_arn" is required, but no definition was found.
然后将其添加到根主文件并不能解决我的问题。
谢谢 尼克
【问题讨论】:
标签: variables lambda terraform