Nuxt Nation カンファレンスが開催されます。11月12日~13日にご参加ください。
デプロイ

Azure

NuxtアプリケーションをAzureインフラストラクチャにデプロイします。

Azure Static Web Apps

設定不要 ✨
Azure Static Web Appsプロバイダーとの統合は設定不要で可能です。詳細はこちら

Azure Static Web Appsは、GitHub Actionsワークフローで継続的にデプロイされるように設計されています。デフォルトでは、Nuxtはこのデプロイ環境を検出してazureプリセットを有効にします。

ローカルプレビュー

ローカルでテストする場合は、Azure Functions Core Toolsをインストールしてください。

デプロイ前にプレビューするために、開発環境を起動できます。

ターミナル
npx nuxi build --preset=azure
npx @azure/static-web-apps-cli start .output/public --api-location .output/server

設定

Azure Static Web Appsは、設定ファイルstaticwebapp.config.jsonを使用して設定されます。

Nuxtは、アプリケーションがazureプリセットでビルドされるたびに、この設定ファイルを自動的に生成します。

以下の基準に基づいて、以下のプロパティを追加します。

プロパティ基準デフォルト
platform.apiRuntimeパッケージの設定に応じて、自動的にnode:16またはnode:14に設定されます。node:16
navigationFallback.rewrite常に/api/serverです。/api/server
routesすべてのプリレンダリングされたルートが追加されます。さらに、index.htmlファイルがない場合は、互換性のために空のファイルが作成され、/index.htmlへのリクエストは/api/serverによって処理されるルートディレクトリにリダイレクトされます。[]

カスタム設定

azure.configオプションを使用して、生成された設定を変更できます。たとえば、Azure FunctionsのNodeランタイムを指定する場合、nuxt.config.tsファイルを以下のように編集します。

nuxt.config.ts
export default defineNuxtConfig({
  // ...
  nitro: {
    azure: {
      config: {
        // ...
        platform: {
          apiRuntime: 'node:18'
        }
      }
    }
  }
})

カスタムルートが追加され、最初に照合されます。競合が発生した場合(オブジェクトに同じルートプロパティがある場合)、カスタムルートは生成されたルートをオーバーライドします。

GitHub Actionsを介したCI/CDからのデプロイ

GitHubリポジトリをAzure Static Web Appsにリンクすると、ワークフローファイルがリポジトリに追加されます。

フレームワークの選択を求められたら、カスタムを選択し、以下の情報を入力します。

入力
app_location'/'
api_location'.output/server'
output_location'.output/public'

この手順を忘れた場合は、いつでもワークフローのビルド設定セクションでビルド設定を更新できます。

.github/workflows/azure-static-web-apps-<RANDOM_NAME>.yml
###### Repository/Build Configurations ######
app_location: '/'
api_location: '.output/server'
output_location: '.output/public'
###### End of Repository/Build Configurations ######
これで完了です!Azure Static Web Appsは、プッシュ時にNitroを搭載したアプリケーションを自動的にデプロイします。

runtimeConfigを使用している場合は、Azureで対応する環境変数を設定することをお勧めします。

その他のオプション

Nitroのドキュメントで、他のAzureデプロイプリセットについて学んでください。