首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AWS Lambda Python函数内部检索URL查询字符串参数?

如何从AWS Lambda Python函数内部检索URL查询字符串参数?
EN

Stack Overflow用户
提问于 2020-04-19 05:28:58
回答 2查看 684关注 0票数 3

如何从通过API网关提供的AWS Lambda函数内部访问URL查询字符串参数?

我已经设置了API网关+ Lambda函数,所以我可以从公共URL调用它。我的Python函数很简单:

代码语言:javascript
复制
def lambda_handler(event, context):
    print('event:', event)
    print('context:', context)

我已经将API的GET "Method Request“处理程序配置为传递"abc”querystring参数。

我还将API的GET“集成请求”处理程序配置为从"method.request.querystring.abc“映射"abc”。

然而,当我访问我的网址时,例如https://myapp.execute-api.us-east-1.amazonaws.com/prod/myfunc?abc=123,唯一记录的是:

代码语言:javascript
复制
event: {}
context: <bootstrap.LambdaContext object at 0x7fc7a6cb0850>

我做错了什么?为什么在event字典中没有传递"abc“?

EN

回答 2

Stack Overflow用户

发布于 2020-04-19 06:04:21

检查集成请求中的Use Lambda Proxy integration,使其传递event中的所有请求详细信息。

票数 1
EN

Stack Overflow用户

发布于 2020-05-26 17:28:56

我也有类似的问题,我知道这有多令人沮丧。使用此映射模板:

代码语言:javascript
复制
{
  "method": "$context.httpMethod",
  "body" : $input.json('$'),
  "headers": {
    #foreach($param in $input.params().header.keySet())
    "$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end

    #end
  },
  "queryStringParameters": {
    #foreach($param in $input.params().querystring.keySet())
    "$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end

    #end
  },
  "pathParameters": {
    #foreach($param in $input.params().path.keySet())
    "$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end

    #end
  }  
}

然后你会发现你的事件看起来像这样:

代码语言:javascript
复制
{
    "method":"GET",
    "body":{

    },
    "headers":{

    },
    "queryParams":{
        "id":"459463732",
        "command":"join_session"
    },
    "pathParams":{

    }
}

上下文用于其他信息,例如IP地址和超时设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61296479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档