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

Linux EC2部署Terraform栈遇GRPCProvider请求取消错误求助

Terraform在Linux EC2上随机出现plugin请求取消的解决方法

在Linux EC2实例部署Terraform栈时,随机触发以下错误:

The plugin.(*GRPCProvider).ApplyResourceChange request was cancelled.
The plugin.(*GRPCProvider).PlanResourceChange request was cancelled.
The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.

使用Terraform版本为1.3.1_linux_amd64、1.3.5_linux_amd64,本地Mac同版本部署无异常,provider配置如下:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

provider "aws" {
  region                   = "us-east-1"
}

解决方法

  • 检查EC2实例资源限制
    Linux EC2实例CPU、内存不足时,系统会强制终止Terraform的provider插件,引发请求取消错误。用top或htop命令监控部署时的资源峰值,若资源不足,升级实例规格或关闭其他占用资源的进程。

  • 优化网络连接稳定性
    EC2与AWS服务的网络不稳定可能导致GRPC请求超时:

    • 确认实例所在VPC路由表、安全组配置正确,允许443端口出站访问AWS服务;
    • 在AWS provider中延长API请求超时:
      provider "aws" {
        region = "us-east-1"
        timeout {
          create = 300
          update = 300
          delete = 300
        }
      }
      
  • 固定AWS Provider版本
    ~>4.0会自动更新到4.x最新版,部分版本可能存在Linux环境下的GRPC兼容问题。尝试固定稳定版本,比如4.67.0:

    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = "=4.67.0"
        }
      }
    }
    

    执行terraform init -upgrade更新provider。

  • 延长插件超时时间
    设置环境变量延长Terraform与插件的GRPC通信超时:

    export TF_PLUGIN_TIMEOUT=300s
    

    可在执行terraform plan/apply前临时设置,或写入实例的~/.bashrc/~/.profile持久生效。

  • 清理Terraform缓存
    EC2上的缓存文件损坏可能引发随机错误,执行以下命令清理后重新初始化:

    rm -rf .terraform/
    rm -rf .terraform.lock.hcl
    terraform init
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:52:35