Distribuire un'app Web statica con l'interfaccia della riga di comando 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 della riga di comando di App Web statiche di Azure (interfaccia della riga di comando di SWA) include il deploy
comando 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 della riga di comando di Azure: uso del
secrets list
comando :az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
App Web statiche di Azure'interfaccia della riga di comando: 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:
Se l'applicazione front-end richiede un passaggio di compilazione, eseguire
swa build
o fare riferimento alle istruzioni di compilazione dell'applicazione.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.
Se l'applicazione front-end richiede un passaggio di compilazione, eseguire
swa build
o fare riferimento alle istruzioni di compilazione dell'applicazione.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.Distribuire l'app:
swa deploy ./my-dist --api-location ./api
Implementare un'app Blazor
È possibile distribuire un'app Blazor seguendo questa procedura.
Compilare l'app Blazor in modalità di rilascio :
dotnet publish -c Release -o bin/publish
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"
}
}
}
}
Se l'applicazione front-end richiede un passaggio di compilazione, eseguire
swa build
o fare riferimento alle istruzioni di compilazione dell'applicazione.Distribuire l'app.
swa deploy
Se sono presenti più voci di configurazione, è possibile specificare l'ID voce per specificarne uno da usare:
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 l'origine compilata 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 il App 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 con swa-cli.config.json
il file
swa deploy
swa deploy myconfig
Stampare il token di distribuzione.
swa deploy --print-token
Eseguire la distribuzione in un ambiente specifico.
swa deploy --env production