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

Terraform aws_s3_bucket_object报错:filemd5函数找不到index.html文件

解决Terraform filemd5找不到index.html的问题

问题根源

你执行terraform apply的工作目录不是terraform/site,Terraform会以当前执行命令的目录为基准查找文件,导致filemd5("index.html")无法定位到site目录下的目标文件。

解决方案

方案1:切换到模块目录执行命令

直接进入terraform/site目录,再运行Terraform命令:

cd terraform/site
terraform init
terraform apply

这样Terraform会以site目录为工作目录,能直接找到同层级的index.html。

方案2:使用相对路径适配执行目录

如果不想切换目录,把配置中的文件路径改成相对于执行命令目录的路径(假设你在terraform目录执行命令):

resource "aws_s3_bucket_object" "index" {
  key    = "index.html"
  acl    = "public-read"
  bucket = aws_s3_bucket.my_example_site.id
  source = "site/index.html"
  etag   = filemd5("site/index.html")
}

方案3:使用path.module内置变量(推荐)

path.module是Terraform内置变量,会自动指向当前模块所在的目录,无论你在哪个目录执行命令,都能精准定位文件,配置修改如下:

resource "aws_s3_bucket_object" "index" {
  key    = "index.html"
  acl    = "public-read"
  bucket = aws_s3_bucket.my_example_site.id
  source = "${path.module}/index.html"
  etag   = filemd5("${path.module}/index.html")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:43