我使用了以下代码:
\nmodule "instance" {\n for_each = var.worker_private_ip\n source = "../../modules/ec2"\n env = var.env\n project_name = var.project_name\n ami = var.ami\n instance_type = var.instance_type\n subnet_id = module.vpc.subnet_id\n vpc_security_group_ids = [module.security_group.security_group_id]\n private_ip = each.value\n key_name = var.public_key_name\n user_data = file("${path.module}/startup.sh.tpl")\n}\nRun Code Online (Sandbox Code Playgroud)\n当我发送 terraform plan/apply 命令时,收到错误
\npath.module is "."\n\n\xe2\x94\x82 Invalid value for "path" parameter: no file exists at "./startup.sh.tpl";\nRun Code Online (Sandbox Code Playgroud)\n因此,terraform 在当前目录中搜索文件,但我希望在 (../../modules/ec2/) 中搜索
\n我在模块文件夹中有startup.sh.tpl 文件,如果我将user_data 设置为:
\nuser_data = file("../../modules/ec2/startup.sh.tpl")\nRun Code Online (Sandbox Code Playgroud)\n一切都很好,如果我将 sciprt 移动到当前目录,一切也都很好,计划和应用命令是正确的
\n我究竟做错了什么?为什么${path.module}指向当前目录".",而不是指向../../modules/ec2/?