如何在lambda函数中引用其他文件?

在我的处理程序中,我打开一个 .mmdb </ code>文件进行地理查找。 在我的程序包中,我使用 ./ </ code>表示法来引用文件,因为处理程序和文件位于同一目录中。 现在,我要使用无服务器部署功能,我已经将文件包含在 serverless.yml </ code>文件的 include </ code>块中。 根据看到的包大小,文件正在上传,但是出现错误</ p>

  open ./GeoLite2-City.mmdb:没有此类文件 或在运行Lambda时
</ code> </ pre>

目录。 从我的lambda中获取文件位置的正确方法是什么?</ p>
</ div>

展开原文

原文

In a handler of mine, I open a .mmdb file for doing geo lookups. In my package, I use ./ notation to reference the file since the handler and file are in the same directory. Now that I want to deploy the function using serverless, I've included the file within the include block in my serverless.yml file. Based on the package size that I'm seeing, the file is being uploaded, however I'm getting the error

open ./GeoLite2-City.mmdb: no such file or directory 

when running the lambda. What is the proper way to get the location of the file from within my lambda?

dqb14659
dqb14659 AWS会导出一个名为LAMBDA_TASK_ROOT的变量,该变量指向已部署代码的源。您应该将其用作基本路径
接近 2 年之前 回复

1个回答



我使用以下答案中的代码列出了我在lambda中使用的目录的内容,从而解决了我的问题:< a href =“ https://stackoverflow.com/questions/14668850/list-directory-in-go/14668907#14668907”>在Go中列出目录。 这样做之后,我意识到我位于我上载的整个文件夹的根目录中,而不是我正在运行代码的特定软件包的目录中(包含 main.go </ code>)</ p>

</ div>

展开原文

原文

I solved my problem by listing the contents of the directory that I was using in my lambda, using the code found in this answer: List directory in Go. After doing so I realized that I was in the root directory of the entire folder that I uploaded, not the directory of the specific package I was running the code from (containing main.go)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问