このチュートリアルでは、生成された 静的 Web サイトNext.jsAzure Static Web Apps にデプロイする方法について説明します。 Next.js の詳細については、 スターター テンプレートの readme を参照してください。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成できます。
- GitHub アカウント。 無料でアカウントを作成できます。
- Node.js がインストールされていること。
1. Next.js アプリを設定する
Next.js CLI を使用してアプリを作成するのではなく、スターター リポジトリを使用できます。 スターター リポジトリには、動的ルートをサポートする既存の Next.js アプリが含まれています。
まず、テンプレート リポジトリから GitHub アカウントの下に新しいリポジトリを作成します。
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 devhttp://localhost:3000に移動してアプリを開くと、次の Web サイトが好みのブラウザーで開きます。
フレームワークまたはライブラリを選択すると、選択した項目に関する詳細ページが表示されます。
2. 静的アプリを作成する
次の手順では、アプリを Azure Static Web Apps にリンクする方法を示します。 Azure でアプリケーションを運用環境にデプロイできます。
Azure ポータルにアクセスします。
[ リソースの作成] を選択します。
静的 Web アプリを検索します。
[ 静的 Web アプリ] を選択します。
を選択してを作成します。
[基本] タブで、次の値を入力します。
プロパティ 価値 Subscription Azure サブスクリプション名。 リソース グループ my-nextjs-group 名前 my-nextjs-app プランの種類 無料 Azure Functions API のリージョンとステージング環境 最も近いリージョンを選択します。 ソース GitHub プロンプトが表示されたら、[ GitHub でサインイン し、GitHub で認証する] を選択します。
次の GitHub 値を入力します。
プロパティ 価値 組織 適切な GitHub 組織を選択します。 リポジトリ nextjs-starter を選択します。 ブランチ メイン を選択します。 [ビルドの詳細] セクションで、[ビルド プリセット] から [カスタム] を選択します。 ビルド構成に関して、次の値を追加します。
プロパティ 価値 アプリの場所 ボックスに「 / 」と入力します。 API の場所 このボックスは空のままにします。 出力場所 ボックスに out と入力してください。
3. 確認と作成
[確認および作成] を選択して、詳細がすべて正しいことを確認します。
[作成] を選択して、App Service Static Web App の作成を開始し、デプロイのための GitHub Actions をプロビジョニングします。
デプロイが完了したら、[ リソースに移動] を選択します。
[ 概要 ] ウィンドウで、 URL リンクを選択して、デプロイされたアプリケーションを開きます。
Web サイトがすぐに読み込まれない場合、ビルドはまだ実行されています。 アクション ワークフローの状態を確認するには、リポジトリの [アクション] ダッシュボードに移動します。
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 Actions ファイルに移動します。
.github/workflows/azure-static-web-apps-<your site ID>.ymlビルドおよびデプロイジョブを更新して、環境変数を
IS_STATIC_EXPORTtrueに設定します。- 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 を検索します。
- グループ名を選択します。
- を選択して、を削除します。
- 削除アクションを確認するには、[ はい ] を選択します。