

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 Next.js 11 SSR 應用程式遷移至 Amplify 託管運算
<a name="update-app-nextjs-version"></a>

當您部署新的 Next.js 應用程式時，根據預設，Amplify 會使用最新支援的 Next.js 版本。目前，Amplify 託管運算 SSR 提供者支援 Next.js 第 15 版。

Amplify 主控台會偵測帳戶中在 2022 年 11 月發行 Amplify 託管運算服務之前部署的應用程式，並完整支援 Next.js 版本 12 到 15。主控台會顯示資訊橫幅，識別使用 Amplify 先前 SSR 供應商 Classic （僅限 Next.js 11) 部署的分支應用程式。我們強烈建議您將應用程式遷移至 Amplify 託管運算 SSR 供應商。

如果您要將託管的 Next.js 11 應用程式更新為 Next.js 12 或更新版本，您可能會在觸發部署時收到`"target" property is no longer supported`錯誤。在此情況下，您必須遷移至 Amplify 託管運算。

您必須同時手動遷移應用程式及其所有生產分支。應用程式不能同時包含 Classic （僅限 Next.js 11) 和 Next.js 12 或更新版本的分支。

使用下列指示將應用程式遷移至 Amplify 託管運算 SSR 供應商。

**將應用程式遷移至 Amplify 託管運算 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 託管運算完成後，您無法在主控台中還原遷移。若要還原遷移，您必須使用 AWS Command Line Interface 將應用程式的平台變更回 `WEB_DYNAMIC`。開啟終端機視窗並輸入下列命令，以您的唯一資訊更新應用程式 ID 和區域。

```
aws amplify update-app --app-id {{abcd1234}} --platform WEB_DYNAMIC --region {{us-west-2}}
```