node.js - AWS Lambda:如何在 node.js 中使用 json 正文响应 http 请求
问题描述
我必须使用 AWS Lambda API 中的 Json 正文响应 https 请求。因此,我需要首先读取正文请求并获取一些数据,然后根据这些数据从外部源(api)检索值并发送回响应。
我从这个开始:
exports.handler = async (event) => {
const id_ses = event.queryResult.outputContexts[0].name;
console.log(id_ses);
const res = {
statusCode: 200,
body: JSON.stringify(data),
};
console.log(res);
return res;
};
//var response = { .... json response
当我不读取请求正文时,我可以发送响应..但是如果我尝试从请求正文中获取数据,则意味着如果我放了这两行,我将无法响应
const id_ses = event.queryResult.outputContexts[0].name;
console.log(id_ses);
我无法从 Lambda 向外部请求方输出响应……尽管我在测试控制台中取得了良好的结果……
任何我可以看到样本的知识或链接都会很好....
解决方案
我尝试根据 AWS 指令更改代码:
const https = require('https')
let url = "https://docs.aws.amazon.com/lambda/latest/dg/welcome.html"
exports.handler = async function(event) {
const promise = new Promise(function(resolve, reject) {
https.get(url, (res) => {
resolve(res.statusCode)
}).on('error', (e) => {
reject(Error(e))
})
})
return promise
}
进入 :
var https = require('https');
exports.handler = async function(event) {
const promise = await new Promise(function(resolve, reject) {
console.log(id_cont);
console.log('starting respondioooo');
const options = {
method: 'GET',
hostname: 'app.respond.io',
path: '/api/v1/contact/YXM2cTBOUVErST',
headers: {
'Authorization': 'Bearer c5dd82fb9d146a1abb1d149909d816e1046497a54',
'Content-Type': 'Application/json'
},
'maxRedirects': 20
};
console.log(options);
const req = https.request(options, (res) => {
let body = '';
console.log('Status:', res.statusCode);
console.log('Headers:', JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', (chunk) => body += chunk);
res.on('end', (chunk) => {
console.log('Successfully processed HTTPS response');
body = JSON.parse(body);
body = body.data.custom_fields.discount;
body = body.replace("%","");
console.log(body);
resolve(body);
});
res.on('error', (e) => {
reject(Error(e));
});
req.end();
});
console.log(promise);
return promise;
};
https 请求仍处于待处理状态超过 60 秒...
知道有什么问题吗???
推荐阅读
- android-studio - 您可以将 Python 脚本链接到 Android Studio 吗?
- python - 如何在 pyinstaller 中修复此错误?我正在尝试构建一个 kivy 应用程序
- postgresql - 谷歌云sql在重负载下窒息
- c++ - ESP8266 微控制器上向量迭代器的 C++ 问题
- apache-spark - spark2.4.3 中方法不存在错误导致重新分区失败
- user-interface - Delphi 表单菜单
- npm - 更改 Task Runner Explorer 命令
- typescript - TypeScript - 合并到单个对象数组的数组的强类型
- python - 什么时候需要在嵌套函数中使用 self?
- c# - 使用 NetMQ 在 C# 应用程序中接收数据