在 terraform 中将 2 个 python 文件添加到 lambda_zip [重复]

Posted

技术标签:

【中文标题】在 terraform 中将 2 个 python 文件添加到 lambda_zip [重复]【英文标题】:add 2 python files to lambda_zip in terraform [duplicate] 【发布时间】: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 的此功能的基本文档的链接时。 【参考方案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 对我来说很有意义。

以上是关于在 terraform 中将 2 个 python 文件添加到 lambda_zip [重复]的主要内容,如果未能解决你的问题,请参考以下文章

你可以在 Terraform 中将块作为变量传递,引用资源嵌套块内容的类型吗?

在 Terraform 中将 SSL 证书附加到 Azure 应用程序网关

如何在Terraform中将字符串添加到变量?

如何在同一个 terraform 配置中使用 2 个提供程序?

Terraform EKS 标记

Terraform 错误:错误锁定状态:获取状态锁时出错:发生 2 个错误: