使用python中的AWS Lambda将Post请求发送到外部API

Mat*_*rix 2 python http-post aws-lambda

我想每小时向外部API(https://example.com/api/jobs/test)发送一个帖子请求.

我使用的Lambda函数如下:

Handler: index.lambda_handler
python: 3.6
Run Code Online (Sandbox Code Playgroud)

index.py

import requests
def lambda_handler(event, context):
  url="https://example.com/api/jobs/test"
  response = requests.post(url)
  print(response.text) #TEXT/HTML
  print(response.status_code, response.reason) #HTTP
Run Code Online (Sandbox Code Playgroud)

测试事件:

 {
 "url": "https://example.com/api/jobs/test"
}
Run Code Online (Sandbox Code Playgroud)

错误:

 START RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Version: $LATEST
 Unable to import module 'index': No module named 'requests'

 END RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d
 REPORT RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Duration: 0.65 ms   Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 21 MB  
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

kix*_*orz 17

您可能可以利用库中的requests模块,boto而不必安装或打包功能。

考虑以下导入: import botocore.vendored.requests as requests

注意:供应商请求将从botocore中删除。

  • 请注意,对Botocore的即将进行的更改将删除Botocore中的请求库的供应商版本:https://aws.amazon.com/de/blogs/developer/removing-the-vendored-version-of-requests-from -botocore / (2认同)

age*_*420 5

您需要将requests模块安装到项目目录并创建lambda部署包.请参阅此链接了解详情.

简而言之,您需要在开发系统(PC或Mac)上创建index.py文件,在该系统上安装Python和pip; 他们按照文档中的步骤操作.要创建lambda,请选择"上传zip"选项,而不是"编辑内联"选项