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

加速CI/CD中Terraform制品传输的方案咨询

加速GitHub Actions中Terraform Plan制品上传/下载的方法

在保留「PR阶段生成plan、合并后复用该plan执行apply」流程的前提下,核心优化方向是大幅缩小上传的制品体积,以下是具体可行的方案:

1. 仅上传Terraform Plan文件本身(最有效)

当前配置上传了整个目录(除部分排除项),但实际上terraform apply只需要terraform plan -out生成的单个plan文件——其他文件(如Terraform配置、模块等)在主分支的apply Job中已经存在,完全不需要上传。

修改plan.yaml的上传路径,直接指向生成的plan文件:

- name: "Upload Plan"
  uses: actions/upload-artifact@v3
  with:
    name: terraform-plan
    if-no-files-found: error # 改为error,确保plan文件存在才上传,避免无效制品
    path: plan # 替换为你的plan文件实际路径,比如${{ steps.terraform.outputs.upload-base-path }}/plan
    compression-level: 9 # 启用最高压缩进一步缩小体积

对应的apply.yaml下载后,直接用该文件执行apply:

- name: "Download Artifact"
  uses: actions/download-artifact@v3
  with:
    name: terraform-plan
    path: ./ # 下载到当前目录,方便直接执行terraform apply plan

这样上传的文件体积从仓库级降到KB/MB级别,上传下载时间会从20分钟缩短到几秒。

2. 优化制品上传的压缩策略

如果确实需要上传少量额外文件,可通过compression-level参数启用最高压缩,进一步减少传输体积。如上面的示例,添加compression-level: 9即可,这是actions/upload-artifact@v3支持的参数,能显著压缩文本类文件的体积。

3. 排除更多冗余文件(可选)

若因特殊原因必须上传目录,检查当前排除规则是否足够,可额外排除:

  • 日志文件(*.log)
  • 临时文件(*.tmp)
  • 本地配置文件(.terraformrc、terraform.rc)
  • 文档类文件(README.md、docs/目录)

修改plan.yaml的path规则:

path: |
  ${{ steps.terraform.outputs.upload-base-path }}
  !.git
  !${{ inputs.environment-name }}/.terraform/providers
  !*.log
  !*.tmp
  !.terraformrc
  !docs/

但仍优先推荐方案1,这是从根源解决体积过大问题的最优解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:32:43