Terraform 如何解决此“错误存档目录:无法存档丢失的目录”
在我的项目开始时,有两个terraform模块:base和Reusabled_模块 base/main.tf 可重用_模块/main.tf 团队销售/main.tf 用于为每个团队创建lambdaTerraform 如何解决此“错误存档目录:无法存档丢失的目录”,terraform,Terraform,在我的项目开始时,有两个terraform模块:base和Reusabled_模块 base/main.tf 可重用_模块/main.tf 团队销售/main.tf 用于为每个团队创建lambda variable "env" {} variable "region" {} module "realdeal" { source = "../team_template" env = "${var.env}" region = "${var.region}" team = "sal
variable "env" {}
variable "region" {}
module "realdeal" {
source = "../team_template"
env = "${var.env}"
region = "${var.region}"
team = "sales"
}
# More stuff tailored for each teams
在team sales中运行terraform plan-var file=dev.tfvars时,出现以下错误:
data.archive\u file.package\u zip:正在刷新状态
错误:刷新状态时出错:发生1个错误:
module.realdeal.module.team\u template.module.mylambda.data.archive\u file.package\u zip:
1发生错误:
module.realdeal.module.team\u template.module.mylambda.data.archive\u file.package\u zip:
data.archive\u file.package\u zip:错误存档目录:无法
存档缺少目录:
/用户/antkong/Documents/Personal/wd/StackoverflowCode/terraform/lambda/team/scripts/
问题是data.archive\u file.package\u zip正在团队模板/脚本中查找脚本
但在本例中,我实际上在team_模板中没有python代码。我只想继续在可重用的模块/脚本中使用python代码
必须保持文件的分离。康威定律等
我如何做到?
可以考虑将BASE和ReUabable模块合并到一个模块中,并使用PATH模块变量获取模块路径,如默认TrRAFrm解析相对于当前工作目录的路径。 因此,在你的情况下: source_dir=${path.module}/scripts/path来自顶级模块 编辑:如果代码不能合并,则可以将PATH模块作为变量从ReUabable模块传递到BASE,然后使用变量而不是PATH。ROOT
< P>可以考虑将BASE和RESABABLE模块合并为一个模块,并使用PATH模块变量获取模块路径,如默认TrRAFrm解析相对于当前工作目录的路径。 因此,在你的情况下: source_dir=${path.module}/scripts/path来自顶级模块 编辑:如果无法合并代码,您可以将path.module作为变量从可重用的\u模块传递到base,然后使用变量而不是path.root。root可能不适用于您的问题,但在我遇到相同错误时适用于我的问题 如果您错误地使用source\u dir而不是source\u文件作为归档文件,则会出现相同的错误 例如,改变这一点:
data "archive_file" "source" {
type = "zip"
source_dir = "${path.module}/lambda_function.py"
output_path = "${path.module}/function.zip"
}
为此:
data "archive_file" "source" {
type = "zip"
source_file = "${path.module}/lambda_function.py"
output_path = "${path.module}/function.zip"
}
也许不适用于你的问题,但当我遇到同样的错误时,也适用于我的问题 如果您错误地使用source\u dir而不是source\u文件作为归档文件,则会出现相同的错误 例如,改变这一点:
data "archive_file" "source" {
type = "zip"
source_dir = "${path.module}/lambda_function.py"
output_path = "${path.module}/function.zip"
}
为此:
data "archive_file" "source" {
type = "zip"
source_file = "${path.module}/lambda_function.py"
output_path = "${path.module}/function.zip"
}
没有合并是否可能?我将更新问题,明确说明限制。主要是代码所有权问题。是否可以不合并?我将更新问题,明确说明限制。主要是代码所有权问题。
data "archive_file" "source" {
type = "zip"
source_file = "${path.module}/lambda_function.py"
output_path = "${path.module}/function.zip"
}