Lambda事件querystring参数是否未定义?需要配置什么?

问题描述

嗨,我有一个GET请求的Lambda ApiGateway端点。 我正在使用带有querystring参数的GET请求,它看起来像这样:

enter image description here

enter image description here

这是我从客户打来的电话:

SearchEvents(term: string): Observable<Event[]> {
  const query = `term=${term}`;
  const options = {
    params: new HttpParams({
       fromString: query
    })
  };
  let url = this.SERVICE_URL + 'event/search';
  console.log('search url',url);
  return this.http.get<Event[]>(url,options)
     .pipe(map((val) => val.map((i) => new Event(i))));

}

每当我调用此端点时,都无法从事件中获取查询字符串参数。

这是处理程序:

export const SearchEvents: APIGatewayProxyHandler = async (event,_context) => {

try {
    console.log('event',event);
    let parameters = event.queryStringParameters;
    console.log('queryString',parameters);
    if (parameters && parameters.hasOwnProperty('term')) {
      let eventService = new EventService(
        process.env.REGION,process.env.STAGE
      );
      let res = await eventService.SearchEvents(parameters.term);
      if (res.isError()) {
        return ApiGatewayResponseService.Error(res.error);
      }
      return ApiGatewayResponseService.Success(res.data);
    } else {
      return ApiGatewayResponseService.BadRequest('Missing search term');
    }
  } catch (e) {
    console.error(e);
    return ApiGatewayResponseService.Error(e);
  }
};

我正在使用Serverless Framework进行部署,并且该功能已设置:

SearchEvents:
handler: src/event-handlers/EventController.SearchEvents
events:
- http:
    method: get
    path: /event/search
    request:
      parameters:
        querystrings:
          term: true

无论如何,对于Lambda的已部署版本,我无法从事件中获取QueryString参数,但是当我使用serverless-offline在本地运行服务时,我可以获取它们

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...