Condividi tramite


Distribuire un'applicazione Web statica con CLI di App Web statiche di Azure

Importante

Per migliorare la sicurezza delle distribuzioni dall'interfaccia della riga di comando di App Web statiche, è stata introdotta una modifica di rilievo che richiede l'aggiornamento alla versione più recente (2.0.2) dell'interfaccia della riga di comando di App Web statiche entro il 15 gennaio 2025.

L'interfaccia a riga di comando per App Web statiche di Azure (SWA CLI) include il comando deploy per distribuire il progetto corrente in App Web statiche di Azure.

Gli scenari di distribuzione comuni includono:

  • Un'app front-end senza un'API
  • Un'app front-end con un'API
  • App Blazor

Token di distribuzione

L'interfaccia della riga di comando di SWA supporta la distribuzione usando un token di distribuzione per abilitare le configurazioni negli ambienti CI/CD.

È possibile ottenere un token di distribuzione da:

  • portale di Azure: Home →'app Web statica → Panoramica dell'istanza → → Gestire il token di distribuzione

  • Interfaccia a riga di comando di Azure: uso del secrets list comando

    az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
    
  • CLI di App Web statiche di Azure: uso del deploy comando:

    swa deploy --print-token
    

È quindi possibile usare il valore del token con --deployment-token <TOKEN> oppure è possibile creare una variabile di ambiente denominata SWA_CLI_DEPLOYMENT_TOKEN e impostarla sul token di distribuzione.

Importante

Non archiviare i token di distribuzione in un repository pubblico.

Distribuire un'app front-end senza un'API

È possibile distribuire un'applicazione front-end senza un'API in App Web statiche di Azure. Se l'applicazione front-end richiede un passaggio di compilazione, eseguire swa build o fare riferimento alle istruzioni di compilazione dell'applicazione.

Selezionare l'opzione più adatta alle proprie esigenze per configurare la distribuzione

  • Opzione 1: dalla cartella di compilazione che si vuole distribuire, eseguire il comando deploy:

    cd build/
    swa deploy
    

    Nota

    La cartella di compilazione deve contenere il contenuto statico dell'app da distribuire.

  • Opzione 2: è anche possibile distribuire una cartella specifica:

    1. Se l'applicazione front-end richiede un passaggio di compilazione, eseguire swa build o fare riferimento alle istruzioni di compilazione dell'applicazione.

    2. Distribuire l'app:

    swa deploy ./my-dist
    

Distribuire un'app front-end con un'API

Usare la procedura seguente per distribuire un'applicazione con endpoint API.

  1. Se l'applicazione front-end richiede un passaggio di compilazione, eseguire swa build o fare riferimento alle istruzioni di compilazione dell'applicazione.

  2. Assicurarsi che la versione del runtime del linguaggio API nel file staticwebapp.config.json sia impostata correttamente, ad esempio:

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

    Nota

    Se il progetto non ha il file staticwebapp.config.json , aggiungerne uno nella outputLocation cartella.

  3. Distribuire l'app:

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

Implementare un'app Blazor

È possibile distribuire un'app Blazor seguendo questa procedura.

  1. Compilare l'app Blazor in modalità Release :

    dotnet publish -c Release -o bin/publish
    
  2. Dalla radice del progetto eseguire il comando deploy:

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

Distribuire usando un file di configurazione

Nota

Il percorso di outputLocation deve essere relativo all'oggetto appLocation.

Se si usa un swa-cli.config.json file di configurazione nel progetto con una singola voce di configurazione, è possibile distribuire l'applicazione eseguendo la procedura seguente.

Per riferimento, un esempio di una singola voce di configurazione è simile al frammento di codice seguente.

{
  "configurations": {
    "my-app": {
      "appLocation": "./",
      "apiLocation": "api",
      "outputLocation": "frontend",
      "start": {
        "outputLocation": "frontend"
      },
      "deploy": {
        "outputLocation": "frontend"
      }
    }
  }
}
  1. Se l'applicazione front-end richiede un passaggio di compilazione, eseguire swa build o fare riferimento alle istruzioni di compilazione dell'applicazione.

  2. Distribuisci l'applicazione.

swa deploy

Se sono presenti più voci di configurazione, puoi fornire l'ID della voce per indicare quale utilizzare:

swa deploy my-otherapp

Opzioni

Di seguito sono riportate le opzioni che è possibile usare con swa deploy:

  • -a, --app-location <path>: cartella contenente il codice sorgente dell'applicazione front-end (impostazione predefinita: ".")
  • -i, --api-location <path>: cartella contenente il codice sorgente dell'applicazione API
  • -O, --output-location <path>: cartella contenente il build dell'applicazione front-end. Il percorso è relativo a --app-location (impostazione predefinita: ".")
  • -w, --swa-config-location <swaConfigLocation>: directory in cui si trova il file staticwebapp.config.json
  • -d, --deployment-token <secret>: token segreto usato per l'autenticazione con le applicazioni web statiche
  • -dr, --dry-run: simulare un processo di distribuzione senza eseguirlo (impostazione predefinita: false)
  • -pt, --print-token: stampare il token di distribuzione (impostazione predefinita: false)
  • --env [environment]: tipo di ambiente di distribuzione in cui distribuire il progetto (impostazione predefinita: "preview")
  • -S, --subscription-id <subscriptionId>: ID sottoscrizione di Azure usato da questo progetto (impostazione predefinita: process.env.AZURE_SUBSCRIPTION_ID)
  • -R, --resource-group <resourceGroupName>: gruppo di risorse di Azure usato da questo progetto
  • -T, --tenant-id <tenantId>: ID tenant di Azure (impostazione predefinita: process.env.AZURE_TENANT_ID)
  • -C, --client-id <clientId>: ID client di Azure
  • -CS, --client-secret <clientSecret>: segreto client di Azure
  • -n, --app-name <appName>: nome dell'applicazione app Web statica di Azure
  • -cc, --clear-credentials: cancellare le credenziali persistenti prima dell'accesso (impostazione predefinita: false)
  • -u, --use-keychain: abilitare l'uso del keychain nativo del sistema operativo per le credenziali persistenti (impostazione predefinita: true)
  • -nu, --no-use-keychain: disabilitare l'uso del keychain nativo del sistema operativo
  • -h, --help: visualizzare la Guida per il comando

Utilizzo

Eseguire la distribuzione usando un token di distribuzione.

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

Eseguire la distribuzione usando un token di distribuzione dalle variabili di ambiente.

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

Distribuire utilizzando il file swa-cli.config.json

swa deploy
swa deploy myconfig

Stampare il token di distribuzione.

swa deploy --print-token

Distribuire in un ambiente specifico.

swa deploy --env production

Passaggi successivi