【问题标题】:add 2 python files to lambda_zip in terraform [duplicate]在 terraform 中将 2 个 python 文件添加到 lambda_zip [重复]
【发布时间】:2021-12-30 14:32:12
【问题描述】:

我使用 Terraform 创建了一个 lambda 函数。要压缩 python 文件,我使用这个:

data "archive_file" "get_incoming_lambda_zip" {
  type             = "zip"
  source_file      = "${path.module}/src/lbd_get_incoming.py"
  output_file_mode = "0666"
  output_path      = "${path.module}/bin/lbd_get_incoming.zip"
}

以前,我使用的是在lbd_get_incoming.py 文件中定义的函数。不过,现在我已经把函数移到了common/utils.py

为了能够在我的 lambda 函数中使用from common.utils import lyfunction,我需要将common.utils ("${path.module}/src/common/utils.py") 文件与压缩版本中的lbd_get_incoming.py 文件一起导出。

实现此目的的正确语法是什么?如果我

【问题讨论】:

  • 请不要一直问同一个问题,尤其是当您提出的现有问题有答案以及指向清楚说明如何使用 Terraform 的此功能的基本文档的链接时。

标签: python amazon-web-services aws-lambda terraform terraform-aws-modules


【解决方案1】:

使用source_dir 而不是source_file 来指向存储这两个文件的目录(并且以正确的目录结构相互对应)。

如果你的两个文件来自不同的地方,你需要先把它们放在一起,然后将 Terraform 的archive_file 指向它们。

【讨论】:

  • 我的源文件在这里 "${path.module}/src/lbd_get_incoming.py" 和 utils 文件在这里:"${path.module}/src/common/utils.py"。如果我将 source_file 更改为source_dir,那么我应该写什么作为路径:${path.module}/src?那我将如何指定原始 lambda 代码文件/函数在哪里(lbd_get_incoming.pyfile)
  • ZIP 只需要包含所有文件。您为 aws_lambda_function 指定的函数的入口点是什么。
  • ${path.module}/src 因为source_dir 对我来说很有意义。
猜你喜欢
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 2020-10-28
  • 2017-07-20
  • 2016-01-30
  • 2011-07-28
  • 2016-07-05
相关资源
最近更新 更多