You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform循环模块输出引用错误:S3桶Lambda触发器配置失败

解决Terraform中S3桶Lambda触发器的类型错误问题

在使用Terraform通过for_each批量创建shared_services_lambdas模块实例(对应不同数据源的Lambda函数),并为每个实例配置同一S3桶的触发规则时,遇到以下类型错误:

Error: Incorrect attribute value type...Inappropriate value for attribute "lambda_function_arn": string required.

根因分析

问题出在lambda_data_loader模块的输出配置上。当前output.tf中用values(module.shared_services_lambda_data_loader)[*]输出lambda_arn,这会返回一个列表类型的值,但S3桶通知的lambda_function_arn参数要求的是单个字符串类型的Lambda ARN。实际上每个shared_services_lambdas模块实例只对应一个Lambda函数,完全不需要返回列表格式。

解决方案

修改lambda_data_loader模块的output.tf,直接引用容器模块输出的单个ARN字符串:

# lambda_data_loader模块output.tf 修改后
output "lambda_arn" {
  value = module.shared_services_lambda_data_loader.arn
}

修改后,父模块中module.shared_services_lambdas[lambda_function.value].lambda_arn会正确返回单个字符串类型的Lambda ARN,完全匹配S3桶通知所需的参数类型,原错误即可解决。


内容的提问来源于stack exchange,提问作者Nyle Alliss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:00:13