Dela via


Distribuera en statisk webbapp med Azure Static Web Apps CLI

Viktigt!

För att förbättra säkerheten för distributioner från Static Web Apps CLI infördes en icke-bakåtkompatibel ändring som kräver att du uppgraderar till den senaste versionen (2.0.2) av Static Web Apps CLI senast den 15 januari 2025.

Azure Static Web Apps CLI (SWA CLI) har deploy kommandot för att distribuera det aktuella projektet till Azure Static Web Apps.

Vanliga distributionsscenarier är:

  • En klientdelsapp utan API
  • En klientdelsapp med ett API
  • Blazor-appar

Distributionstoken

SWA CLI stöder distribution med hjälp av en distributionstoken för att aktivera installationer i CI/CD-miljöer.

Du kan hämta en distributionstoken från:

  • Azure Portal: Home → Static Web App → Din instans → Översikt → Hantera distributionstoken

  • Azure CLI: Använd secrets list kommandot:

    az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
    
  • Azure Static Web Apps CLI: Med kommandot deploy :

    swa deploy --print-token
    

Du kan sedan använda tokenvärdet med --deployment-token <TOKEN> eller så kan du skapa en miljövariabel med namnet SWA_CLI_DEPLOYMENT_TOKEN och ställa in den på distributionstoken.

Viktigt!

Lagra inte distributionstoken på en offentlig lagringsplats.

Distribuera en klientdelsapp utan API

Du kan distribuera ett klientdelsprogram utan ETT API till Azure Static Web Apps. Om klientdelsprogrammet kräver ett byggsteg kör swa build eller läser du anvisningarna för programbygget.

Välj det alternativ som bäst passar dina behov för att konfigurera distributionen

  • Alternativ 1: Kör distributionskommandot från den byggmapp som du vill distribuera:

    cd build/
    swa deploy
    

    Kommentar

    Byggmappen måste innehålla det statiska innehållet i din app som ska distribueras.

  • Alternativ 2: Du kan också distribuera en specifik mapp:

    1. Om klientdelsprogrammet kräver ett byggsteg kör swa build eller läser du anvisningarna för programbygget.

    2. Distribuera din app:

    swa deploy ./my-dist
    

Distribuera en klientdelsapp med ett API

Använd följande steg för att distribuera ett program som har API-slutpunkter.

  1. Om klientdelsprogrammet kräver ett byggsteg kör swa build eller läser du anvisningarna för programbygget.

  2. Kontrollera att API-språkkörningsversionen i staticwebapp.config.json-filen har angetts korrekt, till exempel:

    {
      "platform": {
        "apiRuntime": "node:16"
      }
    }
    

    Kommentar

    Om projektet inte har filen staticwebapp.config.json lägger du till en under mappen outputLocation .

  3. Distribuera din app:

    swa deploy ./my-dist --api-location ./api
    

Distribuera en Blazor-app

Du kan distribuera en Blazor-app med hjälp av följande steg.

  1. Skapa din Blazor-app i versionsläge :

    dotnet publish -c Release -o bin/publish
    
  2. Kör kommandot deploy från roten i projektet:

    swa deploy ./bin/publish/wwwroot --api-location ./Api
    

Distribuera med hjälp av en konfigurationsfil

Kommentar

Sökvägen för outputLocation måste vara relativ till appLocation.

Om du använder en swa-cli.config.json konfigurationsfil i projektet med en enda konfigurationspost kan du distribuera programmet genom att köra följande steg.

Som referens ser ett exempel på en enda konfigurationspost ut som följande kodfragment.

{
  "configurations": {
    "my-app": {
      "appLocation": "./",
      "apiLocation": "api",
      "outputLocation": "frontend",
      "start": {
        "outputLocation": "frontend"
      },
      "deploy": {
        "outputLocation": "frontend"
      }
    }
  }
}
  1. Om klientdelsprogrammet kräver ett byggsteg kör swa build eller läser du anvisningarna för programbygget.

  2. Distribuera din app.

swa deploy

Om du har flera konfigurationsposter kan du ange post-ID:t för att ange vilken som ska användas:

swa deploy my-otherapp

Alternativ

Följande är alternativ som du kan använda med swa deploy:

  • -a, --app-location <path>: mappen som innehåller källkoden för klientdelsprogrammet (standard: ".")
  • -i, --api-location <path>: mappen som innehåller källkoden för API-programmet
  • -O, --output-location <path>: mappen som innehåller den byggda källan för klientdelsprogrammet. Sökvägen är relativ till --app-location (standard: ".")
  • -w, --swa-config-location <swaConfigLocation>: katalogen där staticwebapp.config.json filen finns
  • -d, --deployment-token <secret>: den hemliga token som används för att autentisera med Static Web Apps
  • -dr, --dry-run: simulera en distributionsprocess utan att köra den (standard: false)
  • -pt, --print-token: skriv ut distributionstoken (standard: false)
  • --env [environment]: den typ av distributionsmiljö där projektet ska distribueras (standard: "preview"))
  • -S, --subscription-id <subscriptionId>: Azure-prenumerations-ID som används av det här projektet (standard: process.env.AZURE_SUBSCRIPTION_ID)
  • -R, --resource-group <resourceGroupName>: Azure-resursgrupp som används av det här projektet
  • -T, --tenant-id <tenantId>: Azure-klientorganisations-ID (standard: process.env.AZURE_TENANT_ID)
  • -C, --client-id <clientId>: Azure-klient-ID
  • -CS, --client-secret <clientSecret>: Azure-klienthemlighet
  • -n, --app-name <appName>: Namn på Azure Static Web App-program
  • -cc, --clear-credentials: rensa beständiga autentiseringsuppgifter innan du loggar in (standard: false)
  • -u, --use-keychain: aktivera med hjälp av operativsystemets interna nyckelring för beständiga autentiseringsuppgifter (standard: true)
  • -nu, --no-use-keychain: inaktivera med hjälp av den inbyggda nyckelringen för operativsystemet
  • -h, --help: visa hjälp för kommandot

Förbrukning

Distribuera med hjälp av en distributionstoken.

swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>

Distribuera med hjälp av en distributionstoken från miljövariablerna.

SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/

Distribuera med hjälp av swa-cli.config.json en fil

swa deploy
swa deploy myconfig

Skriv ut distributionstoken.

swa deploy --print-token

Distribuera till en specifik miljö.

swa deploy --env production

Nästa steg