2017-08-29 11 views
0

私はそれがベストプラクティスではないことを知っていますが、クリスホワイトによるこの非常に良いチュートリアルに続いてSlimプロジェクト(PHP)をラムダ関数にアップロードしました:https://cwhite.me/hosting-a-laravel-application-on-aws-lambda/POSTデータをAWS LambdaのSlim webappに渡す方法

My API Gatewayにはプロキシリソースがあり、ラムダプロキシ統合を使用します。

プロジェクトのすべてのページにアクセスできますが、フォームを送信しようとすると、自分のコントローラの入力値にアクセスできません。 (例:$ request-> getParam( 'email')はNULLです)フォームからのすべての入力値はNULLです。私は

var_dump($_POST) 

をしようとした事実

は、それは空の配列が返されました。私の地元のプロジェクトで

、私は$要求オブジェクトをダンプしようとしたの私のフォームからの入力値がをbodyParsedました。 AWS Lambdaでアップロードしたプロジェクトでも同じことをしましたが、bodyParsed空の配列があります。

なぜGETは動作しますが、私のPOSTは動作しませんか?私は何が欠けていますか?

詳細な説明は非常に高く評価されます。ありがとうございました!

答えて

-1

Api Gatewayでマッピングテンプレートを試しましたか?

http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

例:

{ 
    "name" : "$input.params('name')", 
    "body" : $input.json('$') 
} 
+0

私はそれについて読んだが、私はそれをどこに置くかはかなりわかりません。私は "ラムダプロキシの統合"を有効にしました。ボディマッピングテンプレートは私には利用できません。 –

+0

こんにちは、Apiゲートウェイで、あなたのリソースとメソッドを選択してください - > '統合リクエスト' - > 'ボディマッピングテンプレート' - > 'コンテンツタイプ' = 'アプリケーション/ json'でマッピングテンプレートを追加 - > jsonマッピングを追加してください。それを試してみてください。 – Geander

+0

私は少し失われています。私はroutes.phpがすべてを処理するようにプロキシリソースを使用しました。ラムダプロキシインテグレーションも有効になっているので、「ボディマッピングテンプレート」は利用できません。私があなたを誤解していると思ったら、すみません。私はまだAWSが初めてです。私はSlimプロジェクトがLambdaでどのように動作するのかここで見ることができます:https://cwhite.me/hosting-a-laravel-application-on-aws-lambda/ –

関連する問題