如何修改Terraform中aws_lb_listener_rule的Go代码字符限制?
Terraform AWS LB监听器规则消息体字符限制问题解答
自定义修改Provider源码可行,但维护成本高
你完全可以修改Terraform AWS Provider的Go代码(就是你提到的硬编码1024字符限制的逻辑),然后编译自己的Provider版本用于项目:
- 克隆官方的Terraform AWS Provider仓库到本地
- 修改listener_rule.go里的字符限制校验逻辑,要么直接调高上限,要么改成支持配置参数
- 按照仓库编译指南,生成自定义的provider二进制文件
- 在你的Terraform项目中,通过配置文件指定使用本地编译的Provider,替代官方版本
但这种方式有明显缺点:
- 后续官方Provider更新时,你得手动合并代码,长期维护麻烦
- 团队协作时,所有人都得用你编译的版本,否则会出现配置不兼容的问题
你想要的message_body_chr_limit参数化方案,必须提交官方PR
目前官方Provider里没有这个参数,要实现你理想中的配置形式,得修改Provider的资源定义,新增这个参数并调整校验逻辑,让它读取用户指定的限制值。这种功能增强只能通过向官方仓库提交Pull Request推进,等官方审核合并后,才能在正式版本中使用。
另外提醒:先确认AWS ALB本身的API限制!如果AWS官方对fixed response的消息体上限就是1024字符,那就算改了Provider的限制,调用AWS API时还是会报错,白忙活一场。建议先查AWS ELBv2的官方文档确认实际上限。
内容的提问来源于stack exchange,提问作者Sam Comber
相关产品推荐
相关产品推荐

