新しくリリースされた AWS Amlify を触る
参考資料
こちらを利用させてもらう。
公開してくれているのは大感謝しかない!!
とりあえずローカルにPJを作成
npx create-next-app@latest new-amplify-trial --use-npm --example "https://github.com/vercel/app-playground"
ログの出力先が気になるので、console.logを追記する
console.log("@@@@@@@@@@@@@@@@@@@","streaming/edge/product/[id]/page.tsx call")
console.log("@@@@@@@@@@@@@@@@@@@","streaming/node/product/[id]/page.tsx call")
Amplify のビルド情報を眺める
ビルド失敗。。辛いぜ。。
Build failed
2023-11-19T01:37:38.041Z [INFO]: Please check the supported SSR features to find if your build failure is related to an unsupported feature: https://docs.aws.amazon.com/amplify/latest/userguide/ssr-Amplify-support.html#supported-unsupported-features. You may also find this troubleshooting guide useful: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-ssr-deployment.html
ローカルでビルドする。
ローカルではビルドが成功する。
これか。。
まだedgeには対応できていないのか。。
エッジ API ルートが原因で Next.js ビルドが失敗する
現在、Amplify は Next.js エッジ API ルートをサポートしていません。AAmplify でアプリをホストするときは、エッジ以外のAPIとミドルウェアを使用する必要があります。
Amplify のNextのバージョン上書きの箇所をlatest
にしてみる。再びビルド。
==> failed
edge
の部分を変更してみる。ローカルでのビルドはOK。
エラーは変わらず。。
experimental-edge
泣く泣くこちらも削除してみる。
まだ失敗してしまう。。
on-demand ISRの箇所も削除してみる。
オンデマンドのインクリメンタル・スタティック・リジェネレーションがアプリでは機能しない
バージョン 12.2.0 以降、Next.js は特定のページの Next.js キャッシュを手動で削除するインクリメンタル・スタティック・リジェネレーション (ISR) をサポートしています。ただし、Amplify は現在オンデマンドISRをサポートしていません。アプリが Next.js のオンデマンド再検証を使用している場合、アプリを Amplify にデプロイしてもこの機能は機能しません。
13.4.2でビルドが成功したので、
コミットを取り消して、ダウングレードしてみる。
13.4.2 だと
next/og は未対応なのか。。
ビルド成功した🎉
14.0.0 は未対応かもです。
nextのバージョンを13.5にしてみる。
ビルドは成功したが、依然としてstreamingはうまくいかない。。
next/og は未対応なのか。。
og抜きで14.0にしてみる。
やっぱりダメだった。。
Build failed
どうしたらedge locationでコードが動いているか確認できるのかー。
x-edge-location
を見るっぽい。
しかし、アクセスログに出ていない。。
シンプルなPJをホスティングしてみる。
同じエラーが出た。。
14.0.0が無理なのかも・・
nextのバージョンをstable(13.4.2)に変更してビルド。
==> 成功!!🎉
まだ14.0が未対応かも。
edge のマークはイプシロンなのか!
edgeのログもnodeと同じ場所に吐き出される。
amplify > モニタリング > コンピュートログ
@@@@@@@@@@@@@@@@@@@ streaming/edge/product/[id]/page.tsx call
確かにサーバー側でレンダリングされるコンポーネントになっている。サーバー側のログに出力されている。
streamingの箇所がうまくいかない。。スケルトンローディングが表示されない。transfer-encoding chunked
も表示されない。
対応できてないのか。。
Next.js adapter を使ってみる
Amplify’s JavaScript library now supports all Next.js capabilities in a new Next.js adapter
記事タイトル案
playground公式の動きと比べてみた。
Amplify Hosting の現在地
🎉 Next.js 14 対応!!
Amplify Hosting now has Next.js 14 support as well. To use this new feature, set amplify:al2023 as the value for the custom build image if this is the app’s first deployment. Conversely, if the app has already been deployed, then select the Amazon Linux: 2023 image from the dropdown.
OG確認