最近,我第一次尝试了AWSlambda。我的任务是查询RDSMySQL数据库。在这篇文章中,我将分享我的经验。
第一次尝试:使用内联代码编辑器
自从我使用NodeJS以来,第一件事就是找出一个好的MySQL节点包。幸运的是,我找到了这个MySQL库,并且它也有不错的文档,编写代码很简单。
由于能够快速完成代码,因此我跳入Lambda控制台内联代码编辑器,复制并粘贴了代码,并对其进行了测试。但是,出错了。我得到的错误如下:
我发现AWS本身不支持我们使用的MySQL模块,因此我们需要提供捆绑的ZIP文件作为lambda函数。
第二次尝试:使用捆绑的节点项目
我们可以简单地使用nodeinit命令(假设已安装NodeJS并准备就绪)来创建一个package.json文件初始化节点项目。这里的重要一件事是,AWSLambda要求节点项目名称必须与lambda名称相同。
我们需要MySQL软件包,运行以下命令。
以下是package.json,
然后,我们需要创建一个index.js文件,并使用与上面相同的代码。最后,我们需要创建一个ZIP文件(可以使用命令zip-rquery-db.zip)并将其作为lambda函数上传。请注意,ZIP文件中不应有内部目录。如果列出ZIP文件(unzip-lquery-db.zip)的内容,则应如下所示。
此时又出现了一个连接超时问题,并显示以下错误。
检查Lambda的权限检查您的RDS实例的安全组检查您的Lambda函数是否使用VPC检查您的代码是否正确关闭了连接