【发布时间】:2018-03-07 15:00:30
【问题描述】:
这是将调用 api 的 aws lambda 函数:
'use strict';
var request = require("request")
exports.handler = function (event, context,callback) {
let url = "https://3sawt0jvzf.execute-api.us-east-1.amazonaws.com/prod/test"
request({
url: url,
method: "POST",
json: event,
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
callback(null, { "isBase64Encoded": true|false,
"statusCode": "200",
"headers": { "headerName": "headerValue"},
"body": body});
}
else {
console.log("error: " + error)
console.log("response.statusCode: " + response.statusCode)
console.log("response.statusText: " + response.statusText)
}
})
};
这是编写为 aws lambda 函数的 api:
'use strict';
exports.handler = function(event, context, callback) {
console.log(event.name);
callback(null, { "isBase64Encoded": true|false,
"statusCode": "200",
"headers": { "headerName": "headerValue"},
"body": `Hello World ${event.name}`}); // SUCCESS with message
};
当我尝试从 lambda 函数调用 api 时,它只会返回“Hello World undefined”。它没有在末尾附加名称并返回正确的响应。
【问题讨论】:
-
console.log(event.name);这个日志记录 even.name 正确吗?
-
@VijayanathViswanathan 是的
-
console.log(event.name)有效但${event.name}无效?有点不对劲。 -
那么模板字符串肯定有问题。为了证明你可以尝试附加字符串的旧方法,'Hello World' + event.name
-
添加了答案。我相信你的节点版本低于 v4.0.0
标签: node.js amazon-web-services aws-lambda aws-api-gateway