1

私はaws lambda &ゲートウェイを勉強し始めましたが、今はaws Lambdaで簡単なAPIを作ろうとしています。aws gatewayを介してaws lambdaにデータを送信するにはどうすればよいですか?

これは私のラムダ機能です。

'use strict' 
console.log('Loading event'); 

exports.handler = function(event, context, callback) { 
var name = (event.name === undefined? 'No-Name' : event.name); 
callback(null, {"Your-name" : name}); // SUCCESS with message 
}; 

これは私のマッピングテンプレートです(Content-Typeの:アプリケーション/ JSON)。

{"name" : "$input.params('name')"} 

私は名前の値を変更したいので、私が試した、

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'my api url...'); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState === 4) { 
     console.log(xhr.response); 
    } 
}; 
xhr.setRequestHeader("Content-Type", "application/json"); 
xhr.responseType = 'json'; 
var name = "JACK"; 
xhr.send(name); 

それは、動作しません。 {"Your-name": "JACK"}のようなものが欲しいですが、{"Your-name": "No-Name"}しか返しません。 この問題を解決するにはどうすればよいですか?

+0

それは愚かなミスでした。 私は 'GET'ではなく 'POST'を使用しなければなりませんでした。 –

答えて

1

あなたは試すました:

var json = JSON.stringify({ name: "JACK" }); 
 
xhr.send(json);

を?

+0

はい、試しましたが動作しません。 –

+0

ラムダ関数の入力形式はJSONでなければなりません。そのため、動作しません。私はXMLhttprequestでJSONオブジェクトを送ることができないので、統合リクエストでマッピングテンプレートを使用しようとしています。しかし、何も簡単ですhaha –

+0

console.log(JSON.stringify(event、null、2))を入れてくださいあなたのハンドラは、リクエストを再度行い、イベントオブジェクトの内部にあるものを参照してください。 –

関連する問題