【发布时间】:2021-12-30 08:27:38
【问题描述】:
我的home/file.py 文件中有一个def hello() 函数。我创建了一个home/common/utils.pyfile 并将函数移到那里。
现在,我想将它导入我的文件file.py。
我是这样导入的:from utils import hello 和 from common.utils import hello,我的文件中的导入不会引发错误。但是,当我在 AWS Lambda 上运行它时,我收到一个错误:
Runtime.ImportModuleError: Unable to import module 'file': No module named 'utils'
我该如何解决这个问题?无需使用 Ec2 之类的...
data "archive_file" "file_zip" {
type = "zip"
source_file = "${path.module}/src/file.py"
output_file_mode = "0666"
output_path = "${path.module}/bin/file.zip"
}
【问题讨论】:
-
您上传到 Lambda 的打包 ZIP 文件中的文件层次结构是什么?
-
不确定你的意思..我只是运行 terraform init,应用它会自动发生。如何检查结构@jarmod
-
部署 Lambda 函数时,无论您使用哪种 IaC 工具,您都将提供一个打包的部署工件(代码和依赖项的 ZIP 文件)。例如,您通常通过将代码和依赖项压缩到 lambda.zip 中来做到这一点,然后在 Terraform 模板的
aws_lambda_function资源中指明该文件,然后 Terraform 获取并部署它。 -
我用压缩文件内容的方式更新了 qs。不确定这是否是你所说的层次结构@jarmod
标签: python python-3.x amazon-web-services aws-lambda terraform