本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Next.js 11 SSR 应用程序迁移到 Amplify Hosting 计算系统
部署新 Next.js 应用程序时,默认情况下,Amplify 使用支持的最新版本。 Next.js目前,Amplify Hosting 计算 SSR 提供商支持 Next.js版本 15。
Amplify 控制台会检测您账户中在 2022 年 11 月发布的 Amplify Hosting 计算服务之前部署的应用程序,该服务完全支持 Next.js 版本 12 到 15。控制台会显示一个信息横幅,标识使用 Amplify 之前的 SSR 提供商 Classic(仅限 Next.js 11)部署的分支的应用程序。我们强烈建议您将应用程序迁移至 Amplify Hosting 计算 SSR 提供商。
如果您要将托管的 Next.js 11 应用程序更新到 Next.js 12 或更高版本,则在触发部署时可能会"target" property is no longer supported出现错误。在这种情况下,您必须迁移到 Amplify Hosting 计算服务。
您必须同时手动迁移应用程序及其所有生产分支。应用程序不能同时包含 Classic(仅Next.js 限 11)和 Next.js 12 个或更高版本的分支。
按照以下说明将应用程序迁移至 Amplify Hosting 计算 SSR 提供商。
将应用程序迁移至 Amplify Hosting 计算 SSR 提供商
-
登录 AWS 管理控制台 并打开 Amplify
控制台。 -
选择要迁移的 Next.js 应用程序。
注意
在 Amplify 控制台中迁移应用程序之前,必须先更新应用程序的 package.json 文件以使用 Next.js 版本 12 或更高版本。
-
在导航窗格中,依次选择应用程序设置、常规。
-
如果应用程序使用经典(仅限 Next.js 11)SSR 提供程序部署了分支,则控制台会在应用程序主页上显示横幅。在横幅上,选择迁移。
-
在迁移确认窗口中,选择三条语句并选择迁移。
-
Amplify 将构建并重新部署您的应用程序以完成迁移。
恢复 SSR 迁移
当您部署 Next.js 应用程序时,Amplify Hosting 会检测您的应用程序中的设置并为该应用程序设置内部平台值。有三个有效平台值。SSG 应用程序设置为平台值 WEB。使用 Next.js 版本 11 的 SSR 应用程序设置为平台值WEB_DYNAMIC。 Next.js 12 或更高版本的 SSR 应用程序设置为平台值WEB_COMPUTE。
当您按照上一节中的说明迁移应用程序时,Amplify 会将应用程序的平台值从 WEB_DYNAMIC 更改为 WEB_COMPUTE。向 Amplify Hosting 计算完成迁移后,您无法在控制台中恢复迁移。要恢复迁移,必须使用 AWS Command Line Interface 将应用程序的平台值改回 WEB_DYNAMIC。打开终端窗口并输入以下命令,使用您的唯一信息更新应用程序 ID 和区域。
aws amplify update-app --app-idabcd1234--platform WEB_DYNAMIC --regionus-west-2