问题标签 [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.

0 投票
1 回答
2683 浏览

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使用其他自定义图层时使用图层?

0 投票
1 回答
612 浏览

python-3.x - 如何在 python3.6 中的 AWS Lambda 中存储和访问 microsoft office365 帐户令牌

0 投票
3 回答
23987 浏览

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

……一切都无济于事。

我错过了什么?

0 投票
1 回答
293 浏览

python-3.x - AWS Lambda 无法导入模块“演示”:无法导入名称“windll”

如果您在 aws lambda 中上传部署包时遇到此问题,需要有关 aws lambda 的一些帮助。

问候, xxSoumya----

[查找问题片段] [1]:https ://i.stack.imgur.com/2QeGe.png

0 投票
1 回答
2714 浏览

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'在每次执行后继续收到错误。

我想强调一下,我尝试以两种方式执行构建层的过程:

  1. 只包括python下载的包pymysql
  2. 包括安装包后的两个文件夹pymysqlPyMySQL-0.9.3.dist-info
  3. 我在层构建时包括 Python 3.6 和 Python 3.8 的运行时兼容性
0 投票
2 回答
832 浏览

aws-lambda - 如何在 AWS Lambda 中抽象数据库连接?

我正在 AWS 中构建一个应用程序,其中包含很多要编写的 Lambda 函数 - 所有这些函数都将通过运行以下代码创建一个要查询的数据库实例:

现在,我不想在每个 Lambda 函数中显式包含此代码 - 我宁愿将它放在其他地方(在层中或单独的 Lambda 函数中),这样可以简单地通过类似的东西来完成这个:

关于如何做到这一点的任何想法?

0 投票
1 回答
2263 浏览

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,但这并没有帮助。

更新:

如果我改变...

...至...

...使用已经部署的层(其中xxxxxxxxxxxxy是特定的 ID 和版本)然后sam local invoke工作。但是我不想使用我必须先部署的东西,我想使用最新的本地尚未部署的代码。

0 投票
0 回答
22 浏览

.net - Implement lambda layer in lambda function using .net

how can I call lambda layers within lambda function in .net Run time?

0 投票
0 回答
397 浏览

aws-lambda - AWS Lambda NodeJS10.x - 加载共享库时出错:libXrender.so.1

我在我的 lambda 函数 NodeJS10.x中使用wkhtmltopdf时遇到错误

文档错误:/var/task/wkhtmltox/bin/wkhtmltopdf:加载共享库时出错:libXrender.so.1:无法打开共享对象文件:没有这样的文件或目录

我添加了一些 Lambda 层imagemagick 和 graphicsmagick但我得到了同样的错误

提前致谢

0 投票
2 回答
456 浏览

python-3.x - 带有 SAM CLI 的 Lambda 层

我成功地创建了一个无服务器的 lambda 层,但现在我必须对 SAM CLI 做同样的事情,但我做不到。

对于无服务器,我只使用两个文件:

  • 无服务器.yml
  • awswrangler-layer-0.0.23-py3.7.zip

serverless.yml 内容如下:

如何使用 SAM CLI 做同样的事情?请举个template.yaml的例子