问题标签 [aws-lambda-layers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aws-lambda - 创建 lambda 层的代码构建 - 找不到模块
我想使用 codebuild 打包一个 lambda 层。
我的代码构建构建规范如下:
这会将一个nodejs.zip
文件夹保存到我的 s3 存储桶中
生成的 zip 文件如下所示:
package.json 如下:
但是,当我将此层添加到我的 lambda (node10.x)
并导入我的模组:
返回以下错误:
添加环境变量:
NODE_PATH : ./:/opt/node_modules
让我的 lambda 访问我的层,但失去了上下文aws-sdk
添加环境变量后,出现以下错误:
有没有办法同时使用本机aws-sdk
和我的图层?或者我是否需要在aws-sdk
使用其他自定义图层时使用图层?
javascript - “Runtime.ImportModuleError”尝试使用层访问 AWS lambda 函数中的 npm 包
我想在 AWS lambda 函数中使用 npm 包“请求”。
我正在尝试遵循本文中概述的程序:https ://medium.com/@anjanava.biswas/nodejs-runtime-environment-with-aws-lambda-layers-f3914613e20e
我创建了一个这样的目录结构:
我的 package.json 看起来像这样:
据我从文章中可以看出,我应该对上面做的就是运行npm i
,压缩目录,将它作为一个层上传,然后将该层添加到我的 lambda 函数中。
我已经完成了所有这些,但是当我尝试测试我的功能时,我得到的只是:
...就好像该层从未添加过一样。无论是否添加图层,错误都是完全相同的。如果需要解决某种权限问题,那么文章中没有任何内容表明这一点。
我尝试了一些不同的方法,例如我的 .zip 文件是否包含顶级目录“nodejs”或仅包含其内容。我已经尝试使用这样的文件添加"main": "index.js",
到我的package.json
, 中:index.js
……一切都无济于事。
我错过了什么?
python-3.x - AWS Lambda 无法导入模块“演示”:无法导入名称“windll”
如果您在 aws lambda 中上传部署包时遇到此问题,需要有关 aws lambda 的一些帮助。
问候, xxSoumya----
[查找问题片段] [1]:https ://i.stack.imgur.com/2QeGe.png
python-3.x - 为 pymysql 导入 AWS lambda 层
我需要部署一个 lambda 函数,使用 python 包 pymysql 执行一个过程,我的 python 版本是 3.6,为此我将使用 lambda 层来避免带来我的整个代码。为了实现这一点,我遵循以下步骤:
- 在我的本地机器上创建一个 python virtualenv
- 安装包pymysql
创建一个单独的文件夹,在其中移动安装在我的虚拟环境中的 pymysql 包
cp -r /myvirtualenv/lib/python3.6/site-packages/pymysql ~/home/user/packagelambda/
在路径中
~/home/user/packagelambda/
将此包压缩为要作为 AWS lambda 层上传的 zip 文件zip -r rdsconnection.zip *
将此 zipfile 作为新层上传到 aws lambda 仪表板
完成上述过程后,我将转到我的代码并创建两个脚本来模块化我的执行,第一个脚本名为md_conenction.py,如下所示:
此外,默认情况下,lambda 函数中的一个 secon 脚本称为lambda_function.py,其内容如下:
最后,我何时在设计器上的图层选项中添加先前构建的新图层。完成此过程后,我仍然会Unable to import module 'lambda_function': No module named 'pymysql'
在每次执行后继续收到错误。
我想强调一下,我尝试以两种方式执行构建层的过程:
- 只包括python下载的包
pymysql
- 包括安装包后的两个文件夹
pymysql
和PyMySQL-0.9.3.dist-info
- 我在层构建时包括 Python 3.6 和 Python 3.8 的运行时兼容性
aws-lambda - 如何在 AWS Lambda 中抽象数据库连接?
我正在 AWS 中构建一个应用程序,其中包含很多要编写的 Lambda 函数 - 所有这些函数都将通过运行以下代码创建一个要查询的数据库实例:
现在,我不想在每个 Lambda 函数中显式包含此代码 - 我宁愿将它放在其他地方(在层中或单独的 Lambda 函数中),这样可以简单地通过类似的东西来完成这个:
关于如何做到这一点的任何想法?
javascript - AWS:使用“sam invoke local”时未找到层代码
我正在开发一个创建两个 lambda 函数的示例 AWS 项目。这些函数共享公共代码,这些代码node_modules
已放置在单独的层中(具体来说AWS::Lambda::LayerVersion
,不是AWS::Serverless::LayerVersion
)。我可以部署此代码,并且在我测试部署的版本时它可以正常工作。
但是,当我尝试在本地使用 测试代码时sam invoke local
,找不到通用代码。我收到此错误(我正在尝试使用 npm 包“axios”):
{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'axios'\nRequire stack:\n- /var/task/get-timezone.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js"}
这是我的template.yaml
:
我正在调用 GetTimezone 函数,如下所示:
sam local invoke --layer-cache-basedir layer-cache --force-image-build \"GetTimezoneFunction\" --event events/event-timezone.json -d 5858
没有任何东西被复制到layer-cache
目录中,我确信这是问题的一部分,但我不知道如何解决这个问题。
我已经搜索过这个问题的答案,但到目前为止,我只找到了未回答的问题,或者与我的特定情况不匹配的答案。
大多数有点相关的问题涉及AWS::Serverless::LayerVersion
,而不是AWS::Lambda::LayerVersion
。我尝试过使用Serverless
,但这并没有帮助。
更新:
如果我改变...
...至...
...使用已经部署的层(其中xxxxxxxxxxxx
和y
是特定的 ID 和版本)然后sam local invoke
工作。但是我不想使用我必须先部署的东西,我想使用最新的本地尚未部署的代码。
.net - Implement lambda layer in lambda function using .net
how can I call lambda layers within lambda function in .net Run time?
aws-lambda - AWS Lambda NodeJS10.x - 加载共享库时出错:libXrender.so.1
我在我的 lambda 函数 NodeJS10.x中使用wkhtmltopdf时遇到错误
文档错误:/var/task/wkhtmltox/bin/wkhtmltopdf:加载共享库时出错:libXrender.so.1:无法打开共享对象文件:没有这样的文件或目录
我添加了一些 Lambda 层imagemagick 和 graphicsmagick但我得到了同样的错误
提前致谢
python-3.x - 带有 SAM CLI 的 Lambda 层
我成功地创建了一个无服务器的 lambda 层,但现在我必须对 SAM CLI 做同样的事情,但我做不到。
对于无服务器,我只使用两个文件:
- 无服务器.yml
- awswrangler-layer-0.0.23-py3.7.zip
serverless.yml 内容如下:
如何使用 SAM CLI 做同样的事情?请举个template.yaml的例子