💨

AWS Amplify ConsoleでNext.jsのSSGが急に動かなくなったひとへ

2022/09/13に公開

TL;DR

Amplify ConsoleでNext.jsのSSGモードがSSR扱いでデプロイ失敗するときは
$ aws amplify update-app --app-id {app-id} --platform WEBでplatformを明示的にWEB指定するとよい。

概要

Amplify ConsoleでNext.jsのSSGモードでデプロイしていたフロントエンドが、ある日突然デプロイに失敗するようになったので調査しました。

問題の概要

デプロイフェーズにて以下のエラーが発生していました。

2022-08-25T06:23:19 [INFO]: Beginning deployment for application {app-id}, branch:develop, buildId {build-id}
2022-08-25T06:23:19 [INFO]: Cannot find any generated SSR resources to deploy. If you intend for your app to be SSR, please check your app Service Role permissions. Otherwise, please check out our docs on how to setup your app to be detected as SSG (https://docs.aws.amazon.com/amplify/latest/userguide/server-side-rendering-amplify.html#deploy-nextjs-app)
2022-08-25T06:23:19 [ERROR]: {"code":"7","message":"No ssrResources.json file"}

調査

いやおかしい。SSGモードのはず…

確認してみる

アプリの設定>全般>アプリケーションの詳細から確認してもフレームワークはNext.js SSGになっている

なのでモードの検知は合っていることになります。

解決へ向けて

類似のissueが見つかりました。
amplify-hosting/issues/2602

根本的な原因はわかりませんが

  • 同様の事象が発生することがある
  • cliでplatform設定を明示的に指定することで解決するかも

との様子です。

やってみる

現状の確認

% aws amplify get-app --app-id {app-id}

するとレスポンス内に"platform":"WEB_DYNAMIC"という文字列がありました。
静的サイトなのでこれをWEBに変更します

$ aws amplify update-app --app-id {app-id} --platform WEB 

そして再度デプロイを行うと無事成功しました。

まとめ

再発するようなら(issueだと頻繁に起こっている人もいる様子)デプロイフローに組み込んでおく必要があるかもしれないですね。

Discussion