python-3.x - AWS lambda 使用 Python 获取 http 方法
问题描述
我很难在通过 api 网关调用 aws lambda 时使用 http 方法。我在 api gateway 中创建了一个 REST api,它调用了一个 lambda 函数。在 lambda 函数中,我想要两个函数,一个用于 POST 请求,一个用于 GET 请求。我无法从事件中获取方法。在其他线程中,答案通常仅适用于 javascript 或 java。
我从终端运行以下 curl 命令:
curl "https://myurl/endpoint"
我还尝试通过高级休息客户端发送 GET 请求。
这是我正在尝试做的事情:
def lambda_handler(event, context):
method = event['httpMethod']
if method == "GET":
return get_function()
if method == "POST":
return post_function()
运行上面的代码会产生一个keyError
. 我也试过这个:
method = event['requestContext']['http']['method']
我试着像这样打印出事件本身method = event
。我从中得到的只是{}
响应和 cloudwatch 中的。
如何读取请求中的 http 方法
解决方案
下面的代码应该在 Python 3.7 运行时中工作。当然,您可以改进代码,但它会为您提供所需的内容。
reqcontxt = event.get("requestContext")
httpprtcl = reqcontxt.get("http")
methodname = httpprtcl.get("method")
print('### http method name ###' + str(methodname))
谢谢。
雇佣兵
推荐阅读
- html - 在 CSS 中更改输入的大小
- java - 调用 GetFieldID 以在 jni 中恢复自定义 Java 类的成员 ID 时遇到奇怪的崩溃
- vue.js - Vue如何判断文件输入是否为空
- pandas - 计算列中存在的不同数量的组合
- c# - 在 asp.net core 3 中使用 SpaStaticFiles() 查看嵌入式资源
- javascript - Firebase,云功能,根据日期更改值
- powershell - 使用 PowerShell 根据名称将文件列表复制到文件夹
- c# - 反应式扩展和 IDisposable 管理
- git - Gitlab 12.2.4 服务器挂钩未触发
- java - 使用 Renjin 在 Java 中加载 rdara/rds 文件