编程语言
首页 > 编程语言> > python – 无法在AWS Lambda上使用Requests-Module

python – 无法在AWS Lambda上使用Requests-Module

作者:互联网

我需要在python脚本中进行休息调用,每天运行一次.
我无法使用AWS Lambdas将“requests”包打包到我的python-package中.我收到错误:“无法导入模块’lambda_function’:没有名为lambda_function的模块”

我把它分解为hello_world预定义脚本.我可以把它打包成拉链并上传.一切正常.一旦我将“导入请求”放入文件中,我就会收到此错误.

这是我已经做过的事情:

> zip和项目文件夹(包括子文件夹)的权限设置为`chmod 777`.所以权限应该不是问题.
>脚本本身位于根文件夹中.当您打开zip文件时,您可以直接看到它.
>我使用`sudo pip install requests -t PATH_TO_ROOT_FOLDER’将请求包安装到项目的根文件夹中

一切的命名如下:

> zip-file:lambda_function.zip
> py-file:lambda_function.py
>处理程序方法:lambda_handler(事件,上下文)
>“webconfig:lambda_function.lambda_handler”中的handler-definition

我想在最后运行的文件如下所示:

import requests
import json


def lambda_handler(event, context):
    url = 'xxx.elasticbeanstalk.com/users/login'
    headers = {"content-type": "application/json", "Authorization": "Basic Zxxxxxxxxx3NjxxZxxxxzcw==" }
    response = requests.put(url, headers=headers, verify=False)
    return 'hello lambda_handler'

我很高兴能得到任何帮助.我已经在这个问题上使用了多个小时.

解决方法:

要使用请求模块,您只需从botocore.vendored导入请求即可.例如:

from botocore.vendored import requests

def lambda_handler(event, context):
   response = requests.get("https://example.com/")
   print response.json()

您可以看到this gist以了解可以直接在AWS lambda中导入的更多模块

标签:python,python-2-7,amazon-web-services,aws-lambda
来源: https://codeday.me/bug/20191004/1851514.html