Terraform创建API Gateway每次apply都重复重建资源如何解决?
Terraform AWS API Gateway Integration反复强制重建问题解决方案
根因说明
从你提供的变更日志可以看到,触发资源强制重建的原因是+ integration_http_method = "OPTIONS" # forces replacement字段变更:你当前使用的v3.59.0版本AWS provider存在字段匹配逻辑缺陷,会误判integration_http_method字段的配置与实际状态不一致,同时如果配置中未显式声明该字段也会触发该问题。
解决方案
- 第一步:检查
aws_api_gateway_integration资源配置,确保显式声明integration_http_method参数,参数值与关联的aws_api_gateway_method资源的http_method值完全一致,不要省略该参数,也不要用可能返回空值的动态表达式赋值。 - 第二步:如果显式声明后问题仍然存在,可在资源块中添加lifecycle规则忽略该字段的漂移检测:
resource "aws_api_gateway_integration" "default" { // 其余原有配置保持不变 lifecycle { ignore_changes = [integration_http_method] } }
- 第三步:长期修复建议将AWS provider版本升级到v3.74.0以上的3.x稳定版,或直接升级到v4.x版本,该版本缺陷已在后续provider更新中修复。
- 临时修复步骤:如果需要避免首次修复时重建现有资源,可以先执行
terraform state show module.reset-password_options.aws_api_gateway_integration.default查看状态中该字段的实际值,和云上配置核对一致后,执行terraform import将现有integration资源导入状态即可。
内容的提问来源于stack exchange,提问作者Nagaraju Rapelli
相关产品推荐
相关产品推荐

