0
我在node.js中編寫了一個lambda,它將調用api(post)並返回結果體,代碼如下所示。使用apigateway調用外部api
const AWS = require('aws-sdk');
const request = require('request');
exports.handle = function(e, ctx, callback) {
var bodyDetails = {
uri: "myURL",
json: {
"requestChannel": "web1" },
"method": "POST"
};
callback = ctx.done;
var data = e.bodyJson || {};
request(bodyDetails, function(error, response, body) {
if (!error && response.statusCode === 200) {
console.log(JSON.parse(JSON.stringify(body)));
jsonBody = JSON.parse(JSON.stringify(body));
console.log(body + "\t from suvccess") // Print the json response
callback(null, jsonBody); // Return the JSON object back to our API call
} else {
callback(error);
}
});
}
和我在我的lambda控制檯中測試相同。通過傳遞一個空白的json {}
,我得到正確的迴應。
現在我的下一個計劃是將這件作品與API網關進行整合。所以我在我的apigateway
中爲此創建了一個API,並且創建了一個名爲home
的資源。在家中,我創建了一個GET
方法。與下面的細節。
Integration type: Lambda Function
Use Lambda Proxy integration : checked
Lambda Region: us-east-1
Lambda Function: myWorkingLambdaName
當我測試了這個使用apgateway給出的test
選項。我得到的迴應是
Request: /home
Status: 502
Latency: 2942 ms
Response Body
{
"message": "Internal server error"
}
,當我看到我的控制檯我看到印刷的成功塊的值,但狀態代碼是502,這是非常混亂的,請讓我知道我要去哪裏錯了,以及如何我能解決這個問題嗎?
感謝