月間29,000PV達成! 収益は毎日発生中! ギランバレー症候群に関する情報を集めています

API Gatewayのペイロード上限は10MB、、って誰が興味あんねん!

             
  • 2020.01.16
  • AWS
API Gatewayのペイロード上限は10MB、、って誰が興味あんねん!
Advertisement

 

API Gatewayの七不思議のひとつ

詳しくは後述。

 

僕のプロフィールはこちら

 

 

環境

・フロント⇔バックのやりとりにAPI Gatewayを使用している

 

 

こんなことがありました

ある条件下でAPIが「500」のサーバエラーを返却するのです。

このAPIはS3へ画像を取得しに行き、jsonをフロントに返却しています。

画像は複数で、数は可変です。

 

 

ってことで調査してみる

APIの流れはこう。

フロント ⇒ API Gateway ⇒ EC2 ⇒ S3アクセス

 

  • EC2上からcurlコマンドで直接APIを叩くとエラーにはならない。ほげっ??
  • API Gateway経由でAPIを実行するとエラーになる。はえっ??

 

 

調査から分かることは?

どうやらAPI自体(バック処理)に問題はないが、API Gatewayが悪さをしているっぽい

また、API Gateway経由だとうまくいく時といかない時があるが、うまくいく時は画像が少ない場合であーる。

ってことは、API Gatewayが何らかの理由で「だめぽよ~」って言ってエラーを返してると推測できる。

 

 

API Gatewayには色々と制限がある

■Amazon API Gateway の制限事項と重要な注意点

URL:「https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/limits.html」

 

 

API Gatewayのペイロードは10MBらしい

■API Gatewayの最大ペイロードサイズについて

https://qiita.com/akatsukaha/items/2ba0d709835899dae8dd

 

ペイロードとは、ざっくり言えば「ボディ」のこと。

つまり、APIによって返却されるjsonが10MBを超えているので、API Gatewayが「だめぽよ~」って勝手にエラーを返していることになります。

 

 

Advertisement

 

APIからの返却を9.9MBにしてみたら

キャプチャないので申し訳ないですが、「9.9MB」だとうまくいくんだなー、これが。

 

 

API Gatewayのペイロード上限は変えられない

API Gatewayのペイロード上限は変更できません。

つまり、解決できないのです。

 

 

どうすればいい??

そもそも10MBを超えている時点でいけてないですが、画像取得なんかは何回かに分けてAPIを実行するしかないですね~。

 

 

まとめ

このエラー解決するのに1日かかりました。

マニアックすぎるし、誰が知ってんねんこんなん。

ではさいなら。

Travelerを知らないの?