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

Terraform配置疑问:联用镜像源与plugin_cache_dir缓存未生效

问题原因与解决方案

你的问题出在**plugin_cache_dir和provider_installation块的兼容性上**:当Terraform配置了provider_installation自定义安装规则时,单独的plugin_cache_dir配置会被完全忽略,Terraform只会遵循provider_installation内定义的源优先级逻辑,这就是缓存始终不生效的核心原因。

正确的配置方式

需要把缓存逻辑整合到provider_installation块内部,使用Terraform官方推荐的local_cache块实现缓存,同时调整源的顺序确保缓存优先。修改后的配置如下:

provider_installation {
  # 优先检查本地缓存
  local_cache {
    directory = "/cache/.terraform.d/plugin-cache"
  }

  # 公司内部Provider优先使用文件系统镜像
  filesystem_mirror {
    path    = "/tmp/"
    include = ["mycompany.com/*/*"]
  }

  # 非内部Provider使用网络镜像
  network_mirror {
    url = "https://my_s3_bucket/"
    exclude = ["mycompany.com/*/*"]
  }
}

配置说明

  1. local_cache的优先级:Terraform会按provider_installation内块的从上到下顺序查找Provider,把local_cache放在最前面,确保每次初始化先检查缓存目录。
  2. 替代plugin_cache_dir:删除原来单独的plugin_cache_dir配置,local_cache块已经完全覆盖了它的功能,并且能和其他镜像规则协同工作。
  3. 缓存逻辑生效:首次执行terraform init时,会从对应镜像下载Provider并写入缓存;后续执行时,若缓存中存在对应版本的Provider则直接使用,不存在才回退到对应的镜像下载并更新缓存。

为什么之前的配置无效?

单独的plugin_cache_dir是Terraform旧版的全局缓存配置,当你定义了provider_installation块时,Terraform会切换到"自定义安装模式",此时全局缓存配置会被禁用,必须通过local_cache块将缓存逻辑整合到自定义安装规则中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:03:22