AWS Lambda函数中python脚本引入pymssql包

AWS Lambda函数中python脚本引入pymssql包

本来是看上去一件很简单的事情,却花了我半天多的时间.主要里面的坑比较多.所以写个博客,万一有人碰到了可以少走点弯路.

  1. 首先我是在WINDOWS下面开发的python脚本,实现内容也很简单也就是连接下sqlserver数据库,然后做一下更新(其实这些工作可以数据库自己的计划任务来实现). 但是正好要熟悉下AWS的Lambda怎么使用,所以就用pyhon写了然后放到AWM的Lambda上面.

  2. 起初我以为这些import的包Lambda已经帮我们都引入了.后来才发现这些要通过pip下载的包也是需要自己打包好了上传到Lambda的.

  3. 因为AWS Lambda支持zip格式上传,所以我们要把需要的包和自己代码放到一个文件下面然后打包.记住:打包的时候要进入文件夹里面,不要打包文件夹.

  4. 怎么做:那就把需要的包pip安装到指定的位置,这样也不会有多余的包,然后再把需要的代码拷贝到对应的位置.最后打成zip格式的上传即可.

  5. 那么问题来了,我在windows下面按照上面的步骤一步步做完后上传到了Lambda,但是测试的时候还是提示我找不到pymssql包.这就很郁闷了.

  6. 找了很多资料也没说啥,最后发现AWS Lambda是基于Linux的系统,如果用windows下面的包是不是会有问题?

  7. 所以我就马上装了Linux虚拟机,最后从Linux下面把需要的包pip到指定的位置然后包拷贝到了下来重新打包.上传之后确实不会报错说找不到pymssql.

  8. 但是报错说找不到文件夹:libsybdb-89a09a88.so.5.1.0,这就很神奇了,这个文件夹是什么鬼.然后查找发下,这是pymssql下面隐藏文件夹里面的,所以从linux下面把包下载到windows的时候要注意把隐藏文件也下载下来.

  9. 最后终于搞好了....

原文地址:https://www.cnblogs.com/crazyzero/p/10154355.html