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

部署AWS Terraform时出现ACM证书most_recent筛选不支持报错

问题现象

部署此前可正常运行的AWS Terraform配置时突发报错:
Error: most_recent filtering on different ACM certificate statues is not supported
对应配置未做任何手动修改,公开渠道相关参考资料较少,无法直接定位问题。
触发报错的配置片段:

data "aws_acm_certificate" "primary" {
  domain      = local.primary_ssl_cert_domain
  types       = ["AMAZON_ISSUED"]
  most_recent = true
}
触发原因

该报错由两个因素共同触发:

  • Terraform AWS Provider版本迭代后调整了aws_acm_certificate数据源的默认逻辑:当配置most_recent = true但未显式指定statuses过滤参数时,Provider会尝试拉取该域名下所有状态的ACM证书(包括待验证、已签发、已过期、验证超时等全量状态),再本地排序选取最新版本。
  • AWS ACM的ListCertificates接口本身不支持跨不同证书状态执行most_recent排序筛选,当账号下对应域名存在多个不同状态的证书时(比如旧证书过期留存、新申请证书未完成验证、重复申请的证书残留),接口会直接返回参数错误。

之前配置可以正常运行,通常是因为当时账号下该域名的所有ACM证书均为同一状态(比如全部是已签发状态),未触发接口的跨状态校验;要么是本地/流水线使用的AWS Provider版本较旧,未采用新的默认查询逻辑。

修复方法

在数据源配置中显式添加statuses参数,明确指定需要筛选的证书状态,避免Provider触发跨状态查询即可。常规业务场景下只需要筛选已签发的可用证书,修改后的配置如下:

data "aws_acm_certificate" "primary" {
  domain      = local.primary_ssl_cert_domain
  types       = ["AMAZON_ISSUED"]
  most_recent = true
  statuses    = ["ISSUED"]
}

如果有特殊场景需要匹配其他状态的证书,将对应状态值加入statuses列表即可,注意不要混合API不支持联合排序的状态值,绝大多数场景下配置["ISSUED"]即可完全解决该报错,修改后重新执行plan/apply流程即可正常部署,无需调整其他关联资源配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:45:33