

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Next.js 11 SSR 应用程序迁移至 Amplify Hosting 计算
<a name="update-app-nextjs-version"></a>

部署新的 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 提供商**

1. 登录 AWS 管理控制台 并打开 [Amplify](https://console.aws.amazon.com/amplify/) 控制台。

1. 选择要迁移的 Next.js 应用程序。
**注意**  
在 Amplify 控制台中迁移应用程序之前，必须先将应用程序的 package.json 文件更新，以使用 Next.js 12 或更高版本。

1. 在导航窗格中，依次选择**应用程序设置**、**常规**。

1. 如果应用程序有通过 *Classic（仅限 Next.js 11）***SSR 提供商**部署的分支，则控制台会在应用程序主页上显示横幅。在横幅上，选择**迁移**。

1. 在迁移确认窗口中，选择三条语句并选择**迁移**。

1. Amplify 将构建并重新部署您的应用程序以完成迁移。

## 恢复 SSR 迁移
<a name="revert-ssr-migration"></a>

当您部署 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-id {{abcd1234}} --platform WEB_DYNAMIC --region {{us-west-2}}
```