現在、私はS3でホストされている静的なWebサイトを設計しているミニプロジェクトに取り組んでいます。ユーザーが名前、メール、モバイル番号、ファイルを入力し、[アップロード]ボタンをクリックしてAPI URLエンドポイントを呼び出す[アップロード]ページがあります。私はXMLHTTPRequestをを使用してPOSTリクエストを呼び出すと、このようにそれを送っていた上のAPIゲートウェイURLエンドポイント「https://myAPIName.execute-api.ap-region-1.amazonaws.com/Testing/TestinLambda2」を作成している -AWS Lambda POJOとLambda関数を使用したJAVA関数は 'null'を返します
xhttp.open("POST", "https://myAPIName.execute-api.ap-region-1.amazonaws.com/Testing/TestinLambda2", true);
xhttp.send(JSON.stringify({Name:$('#Name').val(),Email:$('#email').val(),MobileNo:$('#mno').val()}));
私はAWSラムダのJava関数にJSON入力などのデータを送信しています。
私はAWS APIゲートウェイでボディマッピング設定を行っていません。
AWS側では、私はAWS Lambda Java関数をPOJOを使用して使用しています。以下は、私がAWSラムダのドキュメントから得た私のクラスである -
public class OutputClass {
String greetings;
public String getStrings()
{
return greetings;
}
public void setString()
{
this.greetings = greetings;
}
public OutputClass(String greetings)
{
this.greetings = greetings;
}
public OutputClass()
{
}
}
私はをクリックして
マイラムダ関数
package com.amazonaws.lambda.demo;
import java.util.Map;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class FirstLambda implements RequestHandler<InputClass, OutputClass> {
@Override
public OutputClass handleRequest(InputClass input, Context context) {
String greetingString = String.format("Hello %s, %s , %s.", input.getName(), input.getEmail(), input.getMobile());
//String greetingString = String.format("Hello");
return new OutputClass(greetingString);
}
}
マイInputClass
package com.amazonaws.lambda.demo;
public class InputClass {
String Name;
String Email;
String MobileNo;
public String getName(){
return this.Name;
}
public String getEmail(){
return this.Email;
}
public String getMobile(){
return this.MobileNo;
}
public void setName(String Name){
this.Name = Name;
}
public void setEmail(String Email){
this.Email = Email;
}
public void setMobile(String Mobile){
this.MobileNo = Mobile;
}
public InputClass(){
}
public InputClass(String Name, String Email, String Mobile){
this.Name = Name;
this.Email = Email;
this.MobileNo = Mobile;
}
}
私OutputClassは "アップロードボタンをクリックします。私の画面上の値は -
{"strings":"Hello null, null , null."}
これは、[テスト]オプションを使用してAPIゲートウェイでPOSTメソッドをテストするときと同じ値です。
誰かが私がここで紛失していることを指摘できれば、本当に感謝します。
ありがとうございました!
こんにちはジェラード、私は名前、電子メールとmobilenoで試してみます。 javascriptの私のキーはName、Email、MobileNoで、私はjsonペイロードで同じキーを持っていました。それは何か事件に関連していますか? –
'mobileno'を使わないでください。プロパティ名はgetterとsetterに基づいて生成され、プロパティ自体ではないと思います(あなたのメソッドは' getMobileNo'ではなく 'getMobile'という名前です)。舞台裏のラムダは解析に[Jackson](https://github.com/FasterXML/jackson)を使用しています。おそらく_ProperCase_ではなく_camelCase_にケースを正規化しています。 – Gerard
Gerardありがとうございます。私もそれを試みます。 –