首页 > 解决方案 > 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.xamazon-web-servicesaws-lambdahttp-method

解决方案


下面的代码应该在 Python 3.7 运行时中工作。当然,您可以改进代码,但它会为您提供所需的内容。

    reqcontxt = event.get("requestContext")
    httpprtcl = reqcontxt.get("http")
    methodname = httpprtcl.get("method")
    print('### http method name ###' + str(methodname))

谢谢。

雇佣兵


推荐阅读