lambda - Lambda 事件查询字符串参数未定义?需要配置什么?
问题描述
您好,我有用于 GET 请求的 Lambda ApiGateway 端点。我正在使用查询字符串参数发出 GET 请求,它看起来像这样:
这是我从客户那里拨打电话的方式:
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);
}
};
我正在使用无服务器框架进行部署,并且该功能设置为:
SearchEvents:
handler: src/event-handlers/EventController.SearchEvents
events:
- http:
method: get
path: /event/search
request:
parameters:
querystrings:
term: true
无论如何,对于已部署的 Lambda 版本,我无法从事件中获取 QueryString 参数,但是当我使用 serverless-offline 在本地运行我的服务时,我可以获取它们
解决方案
推荐阅读
- sql-server - SQL Server 删除具有临时表的特殊架构下的所有表
- apache-kafka - 从 KSQL 流中使用 AVRO Kafka 主题时出错
- c - Raylib DrawTriangle() 用法
- microsoft-graph-api - 草稿被保存到 O365 组而不是用户的草稿文件夹
- c# - CSOM 寻找显示在 SharePoint 表单上的列/字段列表
- docker - 仅将 ASPNETCORE_ENVIRONMENT 的值设置为 docker-compose up cli 命令
- node.js - 使用库 http2-proxy 在节点 js 服务器中代理 http2 请求时出错
- r - 在两个矩阵/数据帧中找到同一行,然后在 R 中的一个矩阵/数据帧中删除
- flutter - 如何解决flutter app中的“构建函数返回null”?
- reactjs - 如何使用 msw 有条件地模拟错误响应