You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda Python函数替换requests导入及安装问题求助

解决AWS Lambda中导入requests的问题

方法一:本地打包依赖后上传Lambda

Lambda本身没有提供AWS平台内的命令行环境用于执行pip install操作,需要在本地完成依赖打包:

  • 本地新建一个空文件夹(比如lambda_deps)
  • 打开本地终端(Windows用命令提示符/PowerShell,Mac/Linux用终端),进入该文件夹,执行:
    pip install requests -t ./
    注意:本地Python版本要和Lambda使用的版本一致(比如Lambda用Python 3.9,本地就用对应版本的pip)
  • 将你的Lambda代码文件(如lambda_function.py)放入该文件夹
  • 把文件夹内所有内容打包成ZIP文件(不要把外层文件夹本身打包,直接打包内部文件和子文件夹)
  • 登录AWS控制台进入目标Lambda函数,在「代码」页面上传这个ZIP包

方法二:用Lambda层管理依赖

如果多个Lambda函数都需要用到requests,用层更便于复用:

  • 本地新建一个名为python的文件夹(名称必须为python),进入后执行:
    pip install requests -t ./
  • 将python文件夹打包成ZIP文件
  • 在AWS控制台的Lambda服务中进入「层」页面,创建新层,上传该ZIP包并选择对应Python版本
  • 回到目标Lambda函数,在「层」配置中添加刚才创建的层

方法三:改用urllib3替代requests

若不想处理依赖安装,urllib3可满足大部分HTTP请求需求,示例代码:

import urllib3

def lambda_handler(event, context):
    http = urllib3.PoolManager()
    # 发送GET请求
    response = http.request('GET', 'https://example.com')
    content = response.data.decode('utf-8')
    
    # 发送POST请求(带JSON数据)
    import json
    post_data = json.dumps({'key': 'value'}).encode('utf-8')
    post_response = http.request(
        'POST',
        'https://example.com/api',
        body=post_data,
        headers={'Content-Type': 'application/json'}
    )
    
    return {'statusCode': 200, 'body': content}

内容的提问来源于stack exchange,提问作者Tartaglia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:22:12