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

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

  • 2020年1月16日
  • 2021年4月9日
  • AWS
  • 40view
AWS API Gatewayのペイロード上限は10MB、、って誰が興味あんねん!
API Gatewayの七不思議のひとつ

API Gatewayのペイロード上限は10MBなんですが、当然こんなマニアックな情報知るわけありません。。

ということで今回は、API Gatewayのペイロード上限について解説します!

きも男
誰が興味あんねん!!

泉アイコン
この記事を書いた人
(泉浩兵)

当ブログ管理者
・エンジニア
・新プログラミング言語『Zero』開発
・保有資格約20個
・投資好き(日本株・仮想通貨)
・オンラインカジノ好き(ルーレット)
・47都道府県制覇目指し中
⇒Twitter(@izumin_0401)
⇒Instagram(@izumin0401)

前提

  • フロント⇔バックのやりとりに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には色々と制限がある

実は、API Gatewayには色々と制限事項があります

詳細は下記を参照してください。

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

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

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

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

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

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

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

つまり、jsonの容量を減らすしか解決方法はありません。

API Gatewayとしては、「10MBも超えるAPIって何やねん!!」って立ち位置なんだと思います。

どうすればいい??

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

まとめ

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

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

ではさいなら。

きも男
ヤナギブソン好きよ。
API Gatewayのペイロード上限は10MB、、って誰が興味あんねん!
フォローしてもらえると泣いて喜びます