如何在AWS lambda

时间:2016-11-10 23:21:32

标签: python amazon-web-services amazon-s3 lambda aws-lambda

我已经查看了herehere,因为我一直试图弄清楚如何在AWS lambda上运行pymysql。到目前为止,我看过的例子都非常复杂,在我开始遇到权限错误之前,我已经使用GitHub教程了解IAM,我不知道如何解决。

从字面上看,我希望能够做的就是在预建的AWS lambda控制台模板中调用import pymysql

这似乎是一个简单的问题,但我很难找到一个明确的,逐步的工作,如何让新的依赖项为我的lambda函数工作。理想情况下,示例将通过AWS CLI ,因为显然有一个控制台选项,这似乎需要一些令人头疼的过程。

干杯,

亚伦

3 个答案:

答案 0 :(得分:12)

我遇到了与 Redis python库类似的问题。 我按照您在第二个链接中提到的相同文档说明进行操作。

这里有一个示例代码段供您参考:

创建新目录 MyPythonLambda 并将 MyPythonLambda.py 放在同一个目录中。

假设 MyPythonLambda / MyPythonLambda.py 是包含处理程序的主lambda。

 cd MyPythonLambda/
 pip install redis -t .
 zip -r MyPythonLambda.zip *

从S3或本地文件系统创建lambda中的zip / import zip。

我认为您需要以类似的方式创建包含python mysql库的zip文件。

答案 1 :(得分:3)

TheYoungSoul有一个fantastic YouTube example如何逐步完成此操作。一旦我按照这些说明操作,这很容易做到。

步骤:

  1. 编写我想在lambda上实现的例程的本地可测试版本并调用此函数main.pymain.py内部有lambda_handler函数,其基本结构为def lambda_handler(event, context): ...

  2. 使用他的repo上提供的脚本create_deployment.pyrequirements.txt一起创建部署zip文件。请注意,如果您使用的是Mac,并且首次尝试may need to do this时出错。

  3. 运行本地可测试示例后,在AWS和上创建lambda函数,而不是从头开始编写函数,选择控制台菜单选项以上载.zip文件

  4. 确保创建可以访问RDS资源的自定义角色,并确保将要连接的数据库放在同一个VPC组中。设置函数时,请指定您希望lambda函数具有VPC访问权限。

答案 2 :(得分:0)

由于我是新人,因此我无法直接评论亚伦的回应,因此在此添加。 TheYoungSoul有一百个回购。 包含“ create_deployment.py”的存储库为:AlexaDeploymentSample