質問: { "isBase64Encoded": True, "statusCode": 200, "headers": {}, "body": json.dumps({"message": str(e)}) } return res ``` 実際にリクエストを投げると以下のようなエラーが返ってきます ``` string argument should contain only ascii characters ``` 調べてみるとJavascriptのFormDataは独特なパースが必要というのを知りました。 現在、lambdaはpython3を使っていますが、パースする方法が見つかりませんでした。 そもそもFormDataオブジェクトを使用して画像をpostしている例がほとんどなく、 他の方は一体どのように画像をアップロードしているのだろうかと甚だ疑問です。 localhost→apigateway→lambda→S3はちゃんと繋がっているのは確認済みです。 ここで先ほどの余談に戻るのですが、APIGatewayとlambdaを経由させるのは一般的ではないのでしょうか? S3にトリガーを設定しておいて、そのトリガーでデータベースを更新するのが一般的でしょうか? 教えて欲しいことをまとめると、 1. FormDataでpostしたデータをlambda(python)側でパースして保存する方法はあるか 2. そもそもFormDataを用いない方法があってそっちの方が便利なのか 3. そもそもPythonという選択が間違っているのか 4. apigateway→lambdaを経由させる必要はなく、S3にトリガーを仕込むのが普通か?また、その時のデータベースに登録するのに必要な情報等は一緒に送ることができるのか 5. 一般的なサーバーレスアプリケーションに置ける画像アップロードの仕組みはどれがメジャーなのか よろしくお願いします。
回答: > > FormDataでpostしたデータをlambda(python)側でパースして保存する方法はあるか > > あります. > > 必要ならコード描きますが,どうしますか? > > > そもそもFormDataを用いない方法があってそっちの方が便利なのか > > エンコードしてjsonで受け取るとういうのが一般的ではあります. > > > そもそもPythonという選択が間違っているのか > > Pythonが間違っているわけではないです.言語は各社,各人の最適なもので大丈夫です. > > > apigateway→lambdaを経由させる必要はなく、S3にトリガーを仕込むのが普通か?また、その時のデータベースに登録するのに必要な情報等は一緒に送ることができるのか > > 普通かどうかはわかりませんが,,, s3に直接PutするよりもAPIGatewayを通したほうがセキュリティ上安全かと思います. > > > 一般的なサーバーレスアプリケーションに置ける画像アップロードの仕組みはどれがメジャーなのか > > 今回ご質問いただいている環境は,メジャーでよく使われる構成ですね. > > > APIGatewayの設定でimageは許可されていますか? 下記を参照してみてもうまくいかないですかね...