问题标签 [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.
python - 在 AWS Lambda 中使用 Python SQLAlchemy 是个好主意吗?
亚马逊建议不要在 lambda 函数中包含大型库/依赖项。据我所知,SQLAlchemy 是一个相当大的 Python 库。你认为在 lambda 函数中使用它是个好主意吗?一种选择是将其作为 Lambda 层包含在所有相关的 Lambda 函数中。
无论如何,最好的做法是什么?
aws-lambda - SAM 构建 - 它还构建层吗?
我对 lambda 和 SAM 都是新手 - 所以如果我搞砸了任何简单的事情,请不要大喊:D。
摘要:我无法sam build
构建中指定的层template.yaml
,它只构建 lambda 函数。
背景:我正在尝试在 python3.7 中构建一个使用 skimage ( scikit-image
) 模块的 lambda 函数。为此,我正在尝试使用 SAM 来构建和部署它。 ...这是工作
我正在尝试将 scikit-image 模块部署为一个层(并且还使用 SAM 构建),而不是将其包含在 lambda 函数方向 中......这不起作用
首先,我只是扩展了标准的 SAMHello World
应用程序。
我只需将 skimage 添加到requirements.txt
,然后使用sam build -u
,然后从构建的包目录中手动删除 numpy/scipy 依赖项(我已经包含了 AWS scipy/numpy 层),就可以让 skimage 正常工作。
(我将 import numpy、scipy.ndimage 和 skimage.draw 添加到标准的 hello world 应用程序中,并为每个应用程序添加了一些测试函数调用)
要求.txt:
之后,一切正常(在本地和/或 AWS 上运行)。
但是,我现在想将 skimage 模块从我的应用程序中移出并移到一个新的自定义层中(我想将 skimage 放在一个层中以重新用于一些功能)
为了设置它,我创建了一个依赖目录并将 requirements.txt 移到那里(在 app 目录中留下空的 requirements.txt)。然后我更新了 template.yaml 以指定新层:
目录结构:
但是,当我使用该模板文件运行时,不会为 template.yml 文件中:中sam build -u
指定的层构建任何内容。但是仍然可以正确构建(现在当然没有任何包含的模块)./dependencies
SkimageLayer
HelloWorldFunction
amazon-web-services - SAM AWS - 测试依赖于层的 AWS Lambda
我正在使用 AWS SAM 框架来构建耦合服务 Lambda 和 api 网关。我在为我的 lambdas 函数运行单元和集成测试时遇到了一些困难,这些函数正在使用层(实用程序函数、模型、控制器、配置......)
我可以存根一些函数,但其他函数是必需的,特别是一些我想放在图层上的库(例如 lodash,...)。
预先感谢您的帮助。
澄清
我有一个项目,其结构如下
- 无服务器-poi
- events/ => 包含本地测试的所有事件
- lambda-create-poi
- 测试/单元/lambda-create-poi-spec
- 指数
- 包裹
- lambda-删除-poi
- lambda-更新-poi
- lambda-list-poi
- lambda-list-poi
- 层点
- 节点/
- 包裹
- 会议
- 楷模
- 控制器
- 实用程序
- 一些共享库(例如:lodash、bluebird、...)
- 节点/
所有其他 lambda 具有与 lambda-create-poi 相同的结构。
我计划通过 bitbucket-ci 将部署工业化。我的管道看起来像:
我的问题是在并行步骤中找不到单元测试的层。所有的单元测试都失败了(我必须存根我使用的所有层事件)
谢谢你的帮助。
amazon-web-services - 如何将 AWS Lambda 配置更新到特定层的最新版本?
我正在尝试使用 AWS CLI 实现一些自动化,
其中我可以使用 cli 命令更新我的 AWS Lambda 函数 -
并使用以下命令向图层添加版本 -
我想要实现的是,将特定层的最新版本链接到函数,
比如 -
我该怎么做?
amazon-web-services - aws-lambda-layer-kubectl 配置错误
我需要在 lambda 函数中针对 EKS 集群运行一些 kubectl 命令。这个函数最终需要查询 ECR 来获取图像。我在使用aws-lambda-layer-kubectl时遇到了下面描述的错误
我相信我已经正确部署了 lambda 层,因为我可以看到它的 ARN arn:aws:lambda:us-east-1:xxxxxxxx:layer:kubelambda:1
lambda 函数代码如下所示
但是,当我运行 lambda 函数时,出现以下错误
问题
- 这里有什么问题?
- 是否有从 ECR 检索图像的特定策略?
先感谢您。
node.js - Testing module that requires a module from a layer in AWS Lambda
So, I am using Layers in my Serverless Framework Node JS project. I add all commonly used npm packages to a layer because I don't want every Lambda function to have huge packages.
The problem is that when running unit tests (locally), it can't find these modules.
Is there any way to handle this problem?
amazon-web-services - lambda 层是否包含 aws-sdk
我正在使用无服务器框架以及 lambda 层和一些 lambdas 函数。为了支持某些功能,我必须包含 aws-sdk。
aws-sdk 的 lambda 层大小为 80MB,而 aws-sdk 单独占用 40MB。
我所知道的是 Lambda 函数默认包含 aws-sdk。但这是否也意味着 lambda 层?
笔记
- 我试图删除 aws-sdk 并部署,但 lambda 函数显示错误“找不到模块 aws-sdk”
- NODE_PATH: "./:/opt/node_modules" 包含在 serverless.yml 中(这是否会导致 aws-sdk 默认不包含在内)?
- 运行时是 nodejs10.x
javascript - 如何配置 Visual Studio Code 以解析 AWS Lambda 层的输入路径 (javascript)
我使用 VS Code 开发我的 AWS 托管的无服务器应用程序。该应用程序使用 Lambda。最近,我决定开始使用 Lambda 层来提取和重用通用代码。我遇到的问题是 AWS Lambda 需要以下 Lambda 层导入:
我想在层导出函数上获得 Intellisense:
尽管我同时拥有 lambda 和 lambda 层代码,但 VS Code 自然无法解析层文件的路径,因此 Intellisense 不起作用。
我发现如果我将下一个 jsconfig.json 文件放在我的项目中的任何位置:
要求语句停止以红色显示,并且允许一些基本的文本自动完成。但它并没有真正正确地显示带有参数的图层导出函数。
我不想创建解决方案,例如在开发期间使用自定义导入,然后在部署到 AWS 期间用“require(”/opt/layer")”替换它们(或者至少有一些自动化的东西)。
可以做什么?
amazon-web-services - 计算应更新 Lambda 层的时间
我有一个来自 Github 的 CodePipeline 项目,它根据文件更改更新图层。我们不想在每次提交时自动更新层,因为它们不一定会改变。由于没有与要更新的 lambda 图层的内置比较,因此确定是否应更新图层的负担落在了用户身上。我尝试了几种不同的选择:
- 散列层文件的本地表示并将其与 AWS 上最新的 lambda 层进行比较。如果哈希值不同,您就知道您有文件更改,并且应该更新。
- 查看您的 git 文件更改(即使用 PythonGit)并查看您的任何层是否已更改文件。如果是这样,您应该更新您的图层。
2 是 CodePipeline 中的一个问题,特别是因为从 github 获取 repo 时,Download Zip
使用的是功能,而不是 git clone,因此删除了 .git 文件夹。您可以通过重命名它来取回它,但它会变得混乱。
我很想听听其他人是如何处理这个问题的。
amazon-web-services - AWS Lambda 层如何与私有 conda 存储库一起使用?
我使用 conda 并有一个私人 conda repo
一个函数可以使用的最大层数是五层。所以我不能把我的每一个私有 conda 包都上传为一个单独的层——因为函数可能需要使用超过 5 个
我不清楚层应该如何解决这个问题,或者它们是否不是为这类事情而设计的
我是否只有一个用于基本 conda 环境的 lambda 层,然后让 lambda 使用该层来导入我的私有 conda 包?或者我应该将我的整个函数作为一个新层本身上传,在那里我将使用我所有的私有 conda deps 在本地构建我的 conda python 应用程序,将它作为一个新层上传,然后有一个不同的函数调用它?