Netlifyで「Build exceeded maximum allowed runtime」となった時の対処方法
公開日: 2021.3.4
Netlifyで「Build exceeded maximum allowed runtime」となってビルドに失敗した時の対処方法をまとめました。
「Build exceeded maximum allowed runtime」はどういう状態か?
Netlifyでエラーが起こっていないのにビルドに失敗すると、「Build exceeded maximum allowed runtime」というログで終わっていることがあります。これは直訳すると「ビルドが最大許容ランタイムを超えた」という意味ですが、つまりはビルドの作業がNetlifyのbuild robotの処理能力を超えてしまっている時に起こるようです。
中小規模のブログ程度なら遭遇することはあまりませんが、中規模以上のブログなどを静的サイトジェネレータで出力すると、このようなエラーに遭遇しやすくなります。
Netlifyではビルドを担当するbuild robotのスペックをユーザーは指定できないので、このままでは永久にサイトを公開できない状態になります。
対処方法
ビルド処理を軽くする
ビルドのどの段階で「Build exceeded maximum allowed runtime」というエラーが出ているのかにもよりますが、概ねサイトの生成時の負荷が原因ですので、ビルドを軽くするのが優先です。
あまり使っていないプラグインを外したり、複雑な処理を行なっているところを見直したりして、なるべく処理を軽くするように心がけます。
それでも、サイトの構成によっては処理を軽くするのにも限界があるので、その場合は、別の方法で対処します。
ローカルでビルド、デプロイする
Netlifyは、ローカルのコマンドラインからビルド&デプロイを処理できる「Netlify Cli」というツールが提供しています。
通常、Netlifyでは、
- レポジトリにプッシュ
- Netlifyがレポジトリの変更を検知
- Netlifyが自動でビルド&デプロイ
という流れですが、Netlify CLIであれば、ビルド済みのデータをいきなりデプロイすることが可能です。
具体的な設定方法は公式のドキュメントに譲りますが、
netlify deploy --dir=dist/ –prod
このコマンドだけで、本番にデプロイできます。
「dir」はカレントディレクトリから見た公開ディレクトリの場所、「–prod」はいきなり本番環境にデプロイする際の引数です。「–prod」がなければ、一旦ステージング用の仮URLで公開されるので、確認したらNetlifyの管理画面から「publish」ボタンを押せば公開されます。
ローカルでビルド、デプロイするデメリットとしては、毎回コマンドを打つ手間があるくらいですが、この辺りもコマンドを登録しておけば簡略化できるので、アイデア次第ではそこまで手間になりません。
例えば、Node.jsのプロジェクトなら、package.jsonに下記のようなスクリプトを登録しておけば、一発でビルド&デプロイができます。
{
"name": "Node Project",
"private": true,
"scripts": {
"depoy": "node build && netlify deploy --dir=dist/ –prod"
},
Netlifyで「Build exceeded maximum allowed runtime」となった時の対処方法を見てきました。
小規模サイトを運営しているときは滅多に見ないエラーですが、ある程度の規模のサイトになってくると、意外と「エラーがないのにビルドに失敗する」というシーンに遭遇します。
Netlifyでは代替方法が提供されているので、そちらを使ってみてください。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2