0
node.jsに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);
}
});
}
私のラムダコンソールで同じことをテストしています。空白のjson {}
を渡して、正しい応答を返します。
私の次の計画は、この作品をAPIゲートウェイと統合することです。だから私はapigateway
のためにこれのためのAPIを作成し、それで、home
という名前のリソースを作成しました。家ではGET
メソッドを作成しました。以下の詳細と一緒に。
test
オプションを使用してこれをテストし
Integration type: Lambda Function
Use Lambda Proxy integration : checked
Lambda Region: us-east-1
Lambda Function: myWorkingLambdaName
。私は
Request: /home
Status: 502
Latency: 2942 ms
Response Body
{
"message": "Internal server error"
}
私は私のコンソールは、私が印刷された成功のブロックの値を参照しますが、ステータスコードが502である。これは非常に混乱して見たとき、私は間違っているつもりどこに私が知っているとどのようにしてくださいとしての応答を取得しますこれを修正できますか?
おかげGatewayは、次のプロパティは、あなたのラムダから返されることを期待し