最新版本的aws-sdk具有ComprehendMedical的函数,我想为其创建lambda函数。
但是,AWS-SDK的版本已经过时了几个月,尚无法使用这些功能。想知道是否有一种使用最新库的方法吗?
谢谢!
答案 0 :(得分:5)
我建议您创建一个库捆绑包,并使用该库捆绑包中的所需版本的AWS-SDK(包括所需的任何其他库)来创建一个 Lambda Layer 。设置Lambda图层后,可以将其分配给Lambda函数。这有助于减小Lambda函数的代码大小,而不必将每个所需的库与每个Lambda函数捆绑在一起。考虑到AWS-SDK是一个相当大的库,Lambda Layer将帮助您仅使用其中的代码来管理各个Lambda函数的大小。
步骤很简单。
nodejs
的目录,它将成为您的项目目录。名称must为nodejs
。npm init
在此目录中。 npm install --save
。 注意:本地安装很重要。nodejs
目录并将其上传到Lambda
层。 查看我的article,了解有关如何为Node JS依赖项设置Lambda层的完整详细信息。我认为,未来,Lambda层应该是每个人在Lambda中进行依赖管理的选择。
注意:Lambda Layer是最近在AWS re:Invent 2018中引入的。它不仅与NodeJS兼容,而且与几乎所有其他语言(如Amazon)兼容,如Python,Java, C#,C ++(是!),Go,Rust等。
答案 1 :(得分:1)
是的,您只需要在Lambda函数的部署文件中捆绑SDK的最新版本,而不必依赖那里的版本。
答案 2 :(得分:1)
在默认情况下,Lambda使用这些SDK 适用于JavaScript的AWS开发工具包– 2.290.0 适用于Python的SDK(Boto3)– 3-1.7.74 botocore-1.10.74
但是您可以通过npm(或使用的任何工具)安装最新的SDK,然后将整个文件上传到lamda。
看看SLS(无服务器框架),添加要部署的文件很容易;)
https://serverless.com/framework/docs/providers/aws/
https://serverless.com/framework/docs/providers/aws/guide/packaging/
答案 3 :(得分:1)
我找到了一种简单的方法。
如果您有webpack.config.js,则可以将externals: ['aws-sdk'],
更改为externals: [],
。
通过这种方式,将强制接收您发送的节点程序包。确保将花费一些额外的时间来上传,依此类推,并提供一个可以尝试的简单快速修复方法。