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:
Om klientdelsprogrammet kräver ett byggsteg kör
swa build
eller läser du anvisningarna för programbygget.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.
Om klientdelsprogrammet kräver ett byggsteg kör
swa build
eller läser du anvisningarna för programbygget.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
.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.
Skapa din Blazor-app i versionsläge :
dotnet publish -c Release -o bin/publish
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"
}
}
}
}
Om klientdelsprogrammet kräver ett byggsteg kör
swa build
eller läser du anvisningarna för programbygget.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