Cloudflare Pages Functionsの制限サイズエラー

公開日:2023/7/21更新日:2023/7/21

Next.js製のサイトをCloudflare Pagesにデプロイする際、Functionsのスクリプトサイズが大きすぎる旨のエラーが発生してデプロイに失敗しました。

Error: Failed to publish your Function. Got error: Your Functions script is over the 1 MiB size limit (workers.api.error.script_too_large)

これは、Next.jsのサイトの内部でSanityを使おうとした時に初めて気づいたのですが、結構大きめのプログラムはCloudflareのPages Functionsで動かせないようです。デプロイ自体は進むのですが、最後の最後で失敗します。Next.jsやNuxt.jsのAPI(サーバーサイド)を使う場合はご注意ください。

Pages FunctionsはCloudflare Workers上で実行されるので、仕様や制限もWorkersに準拠するのですが、Workersの制限事項によると、無料プランは1MBまで、有料プランは10MBまでとなっています。

そのため、今回のエラーへの対処法は以下の2パターンになります。

  • 1Mbの制限を超えないように調整する
  • 課金する

1MB以下に抑えることができればベストですが、今回の私のように外部モジュールを使う場合はサイズダウンが難しいため、課金が必要です。