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

Terraform配置aws_route_table时route属性值类型错误问题咨询

问题解答

这不是Terraform AWS官方文档的描述错误,是AWS Provider版本差异和属性定义规则导致的,具体原因如下:

核心原因

  1. 两种route定义方式的规则差异
    你使用的AWS Provider v3.63.0版本中,aws_route_table的route支持两种定义方式:
  • 嵌套块写法(你最后使用的无报错写法):即直接写多个route {}块,该写法下只需填写当前路由需要的字段,其余可选字段会自动赋值为null,无需显式声明,写法简洁。
  • 列表属性赋值写法(你最初的报错写法):即使用route = [{}, {}]的方式赋值,该写法下Terraform要求数组内的每个对象必须包含该属性定义的所有可选字段,哪怕你不需要该字段也要显式赋值为空,所以才会出现要求你补全十多个冗余字段的报错。
  1. 文档版本不匹配
    你查看的是最新版本的AWS Provider文档,目前v4及以上大版本的AWS Provider已经完全废弃了route的列表属性赋值写法,官方文档只展示嵌套块的写法,如果你没有切换到v3.63.0对应的历史版本文档查看,就容易出现写法不匹配的问题。

使用建议

  • 继续使用嵌套route {}的写法即可,这是AWS Provider各版本通用的官方推荐写法,没有冗余字段,也能兼容后续版本升级。
  • 不要使用列表属性赋值的route写法,该写法已经被新版本废弃,且需要填写大量冗余字段,性价比极低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:15:03