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

Terraform plan执行无响应问题求助(AWS S3部署场景)

Terraform plan无响应问题排查与修复

以下是针对你遇到的问题的具体排查和解决步骤:

1. 修复未定义的本地变量

你的代码中使用了local.test_tf_creds.bucket,但未定义local.test_tf_creds本地值。虽然通常这种情况会直接报错,但叠加其他因素时可能导致异常卡住。在代码开头添加本地值定义:

locals {
  test_tf_creds = {
    bucket = "your-unique-bucket-name" # 替换为你的唯一S3桶名称
  }
}

2. 为资源指定AWS Provider

你定义了带alias = "us_east_1"的AWS Provider,但所有资源均未指定使用该Provider。Terraform会尝试寻找无alias的默认AWS Provider,若环境无默认AWS配置(无~/.aws/credentials、未设置环境变量),可能卡在自动配置环节(如无限等待EC2元数据服务)。

给所有AWS资源添加provider参数:

resource "aws_s3_bucket" "test_tf_bucket" {
  provider = aws.us_east_1 # 新增该行
  bucket = local.test_tf_creds.bucket
  
  website {
    index_document = "index.html"
  }

  tags = {
    Bucket = "Example Terraform Bucket"
  }
}

resource "aws_s3_bucket_object" "build_test_tf" {
  provider = aws.us_east_1 # 新增该行
  for_each = module.template_files.files

  bucket = local.test_tf_creds.bucket
  key    = each.key
  content_type = each.value.content_type
  source = each.value.source_path
  content = each.value.content
  etag   = each.value.digests.md5

  tags = {
    Bucket-Object = "Example Bucket Object"
  }
}

3. 修正模块源地址

hashicorp/dir/template并非HashiCorp官方模块,错误的模块源会导致Terraform在拉取模块时卡住(如访问不存在的仓库无限重试):

  • 若为本地模块,使用相对路径(如./modules/dir-template)
  • 若需处理模板文件,改用官方hashicorp/template模块或templatefile内置函数

4. 检查目标目录状态

确认react-app/build目录存在,且目录内文件数量在合理范围(若存在上万级文件,模块处理可能卡住)。

5. 开启Debug日志定位问题

若以上步骤无效,开启Debug日志查看具体卡顿环节:

TF_LOG=DEBUG terraform plan

日志会输出详细执行流程,可定位是卡在Provider初始化、模块处理还是资源解析阶段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:05:17