特定の関数内でしか使用しないモジュールは、その関数内でインポートすることが効率的です。
def complex_calculation():
import json # この関数内でしか使用しない
# 複雑な処理
ALB502の回避策
ALBでは、リクエストボディは最大1MB(超過時は413エラー)、レスポンスボディも最大1MB(超過時は502エラー)となる。
・・・なんてことが書いてあったぞ。
レスポンスボディのサイズを測定できないかな?
Chromeの開発者メニューから測定できるよね。
ALBでは、リクエストボディは最大1MB(超過時は413エラー)、レスポンスボディも最大1MB(超過時は502エラー)となる。
3,300件のデータ表示のうち件数を少なくしても、888kBあるわ。
実際は、Lambad直接の方で900kBのレスポンスになった時点で、ALB経由の方は502を返していた。
まぁ、経由するものによって容量が違うというのはありそうだ。
状況的に、上記URLの
ターゲットは Lambda 関数で、レスポンスボディが 1 MB を超えています。
・・・に、該当するんじゃないかなぁ。
まぁ、 最初からこのようなことは想定内だよね。
せっかく、ajaxを使っているんだから、なんとかなるでしょう。
とはいえ、S3に置く添付ファイルのダウンロードをどうしようかは一考が必要だわ。
まず、これ(DX→S3)を使うかな。
dev.classmethod.jp
そして、S3の署名付きURLを発行するのが良いかもしれない。
aws.amazon.com
こんな感じのことができるかもしれない。
dev.classmethod.jp
HTMLの複数選択リスト
https://getbootstrap.jp/docs/5.3/forms/select/
きちんとbootstrapでフォローされているじゃないか。