use*_*064 7 amazon-web-services aws-lambda aws-api-gateway
正在使用 API 网关触发 Lambda 函数,使用 Lambda 代理集成,但是请求正文是 base64 编码的,这是为什么?以及如何将其更改为 JSON 以对 JSON 进行字符串化?
Kav*_*lai 17
如果我正确理解您的问题,您正在将非 Base64 编码的 JSON 负载作为请求发送到 API 网关,但是您的 Lambda 将其作为 Base64 编码的字符串接收。
看来你没有application/json按照你的要求设置content-type。您可以在此表中看到 API 网关如何决定Integration Request Payload(最后一列)是Base64-encoded string类型还是其他类型。
小智 11
这是因为您在 API Gateway 中使用 Lambda 代理集成。如果使用Lambda集成就可以了,可以获得JSON。
您也可以将其更改为 JSON,以使用以下方法对 JSON 进行字符串化。
let buff = Buffer.from(event.body, "base64");
let eventBodyStr = buff.toString('UTF-8');
let eventBody = JSON.parse(eventBodyStr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |