Aws lambda terraform中的文件函数未检测路径中的文件

Aws lambda terraform中的文件函数未检测路径中的文件,aws-lambda,terraform,Aws Lambda,Terraform,这是我的lambda角色代码,我希望我的函数从文件路径iam/lambda-aspect-policy.json读取文件: resource "aws_iam_role" "lambda_role" { name = "lambda_role" assume_role_policy = file("./iam/lambda-assume-policy.json") } 当我运行terraform plan时,它会抛出以下错误: Call to function "file" f

这是我的lambda角色代码,我希望我的函数从文件路径iam/lambda-aspect-policy.json读取文件:

resource "aws_iam_role" "lambda_role" {
  name = "lambda_role"

  assume_role_policy = file("./iam/lambda-assume-policy.json")
}
当我运行terraform plan时,它会抛出以下错误:

   Call to function "file" failed: no file exists at
   iam/lambda-assume-policy.json.

如果您使用的是
TerraformCloud
,则应将工作区中的执行模式从
remote
更改为
local


使用
interpolation
语法
${file(${path.module}/iam/lambda假定policy.json”)}

默认情况下,
file
函数解析相对于运行Terraform的当前工作目录的给定路径。这通常是包含根模块的目录

在文件作为模块的一部分包含的常见情况下,我们通常希望使用相对于该模块自身目录的路径,而不是根目录。我们可以通过插值
path.module
来实现,如下所示:

  assume_role_policy = file("${path.module}/iam/lambda-assume-policy.json")

为了使Terraform配置通常与运行Terraform的平台无关,Terraform配置通常使用正斜杠,因为Unix系统使用正斜杠,Windows系统支持正斜杠(即使反斜杠是默认分隔符)。因此,即使在Windows上,
path.module
也会生成包含正向斜杠的路径。期望您在写入路径之后写入的其他路径也将使用正斜杠。

此资源是否在模块中?如果是的话,你能显示你正在使用的目录布局吗?