静的にレンダリングされた Next.js の Web サイトを Azure Static Web Apps にデプロイする
このチュートリアルでは、Next.js で生成された静的 Web サイトを Azure Static Web Apps にデプロイする方法について説明します。 Next.js の仕様の詳細については、スターター テンプレートの readme を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- GitHub アカウント。 無料でアカウントを作成できます。
- Node.js がインストールされていること。
1. Next.js アプリを設定する
Next.js CLI を使用してアプリを作成するのではなく、スターター リポジトリを使用できます。 スターター リポジトリには、動的ルートをサポートする既存の Next.js アプリが含まれています。
最初に、お使いの GitHub アカウントに、テンプレート リポジトリから新しいリポジトリを作成します。
[https://resources.azure.com](https://github.com/staticwebdev/nextjs-starter/generate ) に移動します
リポジトリに nextjs-starter という名前を設定します
次に、新しいリポジトリをお使いのコンピューターに複製します。
<YOUR_GITHUB_ACCOUNT_NAME>
をアカウント名に置き換えます。git clone http://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/nextjs-starter
新しく複製された Next.js アプリに移動します。
cd nextjs-starter
依存関係をインストールします。
npm install
開発環境で Next.js アプリを起動します。
npm run dev
http://localhost:3000
に移動してアプリを開きます。いつも使用しているブラウザーで、次の Web サイトが開かれます。
フレームワークまたはライブラリを選択すると、選択した項目に関する詳細ページが表示されます。
2. 静的アプリを作成する
次の手順では、アプリを Azure Static Web Apps にリンクする方法を示します。 Azure に移動すると、アプリケーションを運用環境にデプロイできます。
Azure ポータルにアクセスします。
[リソースの作成] を選択します。
Static Web Apps を検索します。
[Static Web App](静的 Web アプリ) を選択します。
[作成] を選択します
[基本] タブで、次の値を入力します。
プロパティ 値 サブスクリプション Azure サブスクリプション名。 リソース グループ my-nextjs-group 名前 my-nextjs-app [プランの種類] Free Azure Functions API のリージョンとステージング環境 最も近いリージョンを選択します。 ソース GitHub [GitHub でサインイン] を選択し、プロンプトが表示されたら GitHub で認証します。
次の GitHub 値を入力します。
プロパティ 値 組織 適切な GitHub 組織を選択します。 リポジトリ nextjs-starter を選択します。 ブランチ [main](メイン) を選択します。 [Build Details](ビルドの詳細) セクションで、 [Build Presets](ビルドのプリセット) から [Custom](カスタム) を選択します。 ビルド構成として、次の値を追加します。
プロパティ 値 App location (アプリの場所) ボックスに「/」と入力します。 Api location (API の場所) このボックスは空のままにします。 Output location (出力場所) ボックスに「out」 と入力します。
3. 確認と作成
[確認および作成] を選択して、詳細がすべて正しいことを確認します。
[作成] を選択して、App Service Static Web App の作成を開始し、デプロイのための GitHub Actions をプロビジョニングします。
デプロイが完了したら、 [リソースに移動] を選択します。
[概要] ウィンドウで、 [URL] リンクを選択して、デプロイしたアプリケーションを開きます。
Web サイトがすぐに読み込めない場合、ビルドはまだ実行中です。 Actions ワークフローの状態を確認するには、リポジトリの Actions ダッシュボードに移動します。
https://github.com/<YOUR_GITHUB_USERNAME>/nextjs-starter/actions
ワークフローが完了したら、ブラウザーを最新の情報に更新して Web アプリを表示できます。
これで、main
ブランチに加えた変更によって、Web サイトの新しいビルドとデプロイが開始されます。
4. 変更を同期する
アプリを作成したとき、Azure Static Web Apps によってリポジトリに GitHub Actions ファイルが作成されました。 最新のものをローカル リポジトリにプルして、サーバーと同期します。
ターミナルに戻り、git pull origin main
コマンドを実行します。
静的レンダリングの構成
既定では、アプリケーションはハイブリッド レンダリング Next.js アプリケーションとして扱われますが、静的サイト ジェネレーターとして継続的に使うには、デプロイ タスクを更新する必要があります。
Visual Studio Code でリポジトリを開きます。
Azure Static Web Apps によって
.github/workflows/azure-static-web-apps-<your site ID>.yml
のリポジトリに追加された GitHub Actions ファイルに移動しますビルド & デプロイ ジョブを更新して、
IS_STATIC_EXPORT
の環境変数をtrue
に設定します。- name: Build And Deploy id: swa uses: azure/static-web-apps-deploy@latest with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments) action: "upload" app_location: "/" # App source code path api_location: "" # Api source code path - optional output_location: "" # Built app content directory - optional env: # Add environment variables here IS_STATIC_EXPORT: true
変更を git にコミットし、GitHub にプッシュします。
git commit -am "Configuring static site generation" && git push
ビルドが完了すると、サイトは静的にレンダリングされます。
リソースをクリーンアップする
このアプリを引き続き使用しない場合は、次の手順を使用して Azure Static Web Apps インスタンスを削除することができます。
- Azure portal を開きます。
- 上部の検索バーから「my-nextjs-group」を検索します。
- グループ名を選択します。
- [削除] を選択します。
- [はい] を選択して、削除操作を確定します。