Nuxt/docs/content/3.docs/3.deployment/1.azure.md
2021-10-11 19:18:38 +02:00

4.3 KiB

icon
LogoAzure

Azure

How to deploy Nuxt to Azure Static Web Apps or Azure Functions.

Azure Functions

::list

  • Support for serverless SSR build
  • No configuration required
  • Static assets served from Azure Function ::

Setup

export default {
  nitro: {
    preset: 'azure_functions'
  }
}

Local preview

Install Azure Functions Core Tools if you want to test locally.

You can invoke a development environment from the serverless directory.

NITRO_PRESET=azure_functions yarn build
cd .output
func start

You can now visit http://localhost:7071/ in your browser and browse your site running locally on Azure Functions.

Deploy from your local machine

To deploy, just run the following command:

# To publish the bundled zip file
az functionapp deployment source config-zip -g <resource-group> -n <app-name> --src dist/deploy.zip
# Alternatively you can publish from source
cd dist && func azure functionapp publish --javascript <app-name>

Deploy from CI/CD via GitHub Actions

First, obtain your Azure Functions Publish Profile and add it as a secret to your GitHub repository settings following these instructions.

Then create the following file as a workflow:

name: azure
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  deploy:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest ]
        node: [ 12 ]
    steps:
      - uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node }}

      - name: Checkout
        uses: actions/checkout@master

      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"

      - uses: actions/cache@v2
        id: yarn-cache
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-azure

      - name: Install Dependencies
        if: steps.cache.outputs.cache-hit != 'true'
        run: yarn

      - name: Build
        run: npm run build
        env:
          NITRO_PRESET: azure

      - name: 'Deploy to Azure Functions'
        uses: Azure/functions-action@v1
        with:
          app-name: <your-app-name>
          package: .output/deploy.zip
          publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}

Optimizing Azure Functions

Consider turning on immutable packages to support running your app from the zipfile. This can speed up cold starts.

Demo

A live demo is available on https://nuxt-nitro.azurewebsites.net/

Azure Static Web Apps

How to deploy Nuxt to Azure Static Web Apps with Nuxt Nitro.

::list

  • Support for serverless SSR build
  • Auto-detected when deploying
  • Minimal configuration required ::

Setup

Azure Static Web Apps are designed to be deployed continuously in a GitHub Actions workflow. By default, Nitro will detect this deployment environment and enable the azure preset.

Deploy from CI/CD via GitHub Actions

When you link your GitHub repository to Azure Static Web Apps, a workflow file is added to the repository.

Find the build configuration section in this workflow and update the build configuration:

###### Repository/Build Configurations ######
app_location: '/'
api_location: '.output/server'
output_location: '.output/public'
###### End of Repository/Build Configurations ######

Note

Pending an update in the Azure Static Web Apps workflow, you will also need to run the following in your root directory:

mkdir -p .output/server
touch .output/server/.gitkeep
git add -f .output/server/.gitkeep

That's it! Now Azure Static Web Apps will automatically deploy your Nitro-powered Nuxt application on push.