Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Anteckning
Från och med den 1 juni 2024 kan nyligen skapade App Service-appar generera ett unikt standardvärdnamn som använder namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net
. Befintliga appnamn förblir oförändrade. Till exempel:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Mer information finns i Unikt standardvärdnamn för App Service-resurs.
Den här artikeln visar hur du distribuerar koden som ett ZIP-, WAR-, JAR- eller EAR-paket till Azure App Service. Den visar också hur du distribuerar enskilda filer till App Service, separat från ditt programpaket.
Om du vill slutföra stegen i den här artikeln skapar du en App Service-app eller använder en app som du har skapat för en annan självstudie.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Viktigt
När du skapar ZIP-paketet för distribution ska du inte ta med rotkatalogen. Inkludera endast filer och kataloger i rotkatalogen. Om du laddar ned en GitHub-lagringsplats som en ZIP-fil kan du inte distribuera filen som den är till App Service. GitHub lägger till kapslade kataloger på den översta nivån, som inte fungerar med App Service.
I ett lokalt terminalfönster navigerar du till rotkatalogen för ditt appprojekt.
Den här katalogen bör innehålla postfilen till webbappen, till exempel index.html, index.php och app.js. Den kan också innehålla pakethanteringsfiler som project.json, composer.json, package.json, bower.json och requirements.txt.
Om du inte vill att App Service ska köra distributionsautomation åt dig kör du alla bygguppgifter, npm
till exempel , bower
, gulp
, composer
och pip
. Kontrollera att du har alla filer som du behöver för att köra appen. Det här steget krävs om du vill köra paketet direkt.
Skapa ett ZIP-arkiv med allt i projektet. För dotnet
projekt lägger du till allt i kommandots dotnet publish
utdatakatalog, exklusive själva utdatakatalogen. Följande kommando i terminalen för att skapa ett ZIP-paket med innehållet i den aktuella katalogen:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
När du distribuerar ett ZIP-paket packar App Service upp innehållet i standardsökvägen för din app: D:\home\site\wwwroot
för Windows, /home/site/wwwroot
för Linux.
Den här ZIP-paketdistributionen använder samma Kudu-tjänst som driver kontinuerliga integreringsbaserade distributioner. Kudu har stöd för följande funktioner för distribution av ZIP-paket:
Anteckning
Filer i ZIP-paketet kopieras endast om deras tidsstämplar inte matchar det som redan har distribuerats.
I webbläsaren navigerar du till https://<app_name>.scm.azurewebsites.net/ZipDeployUI
. För appnamnet, se anteckningen överst.
Ladda upp ZIP-paketet som du skapade i Skapa ett projekt-ZIP-paket genom att dra det till utforskarens område på webbsidan.
När distribueringen pågår visar en ikon i det övre högra hörnet förloppet i procent. På sidan visas även utförliga meddelanden för åtgärden under utforskarområdet. När distributionen är klar ska det sista meddelandet säga Att distributionen lyckades.
Den här slutpunkten fungerar inte för Linux App Services just nu. Överväg att använda FTP eller ZIP-distributions-API:et i stället.
Distribuera ett ZIP-paket till webbappen med hjälp av kommandot az webapp deploy . CLI-kommandot använder Kudu-publicerings-API:et för att distribuera filerna och kan anpassas helt.
I följande exempel skickas ett ZIP-paket till din webbplats. Ange sökvägen till ditt lokala ZIP-paket för --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Det här kommandot startar om appen när zip-paketet har distribuerats.
Som standard förutsätter distributionsmotorn att ett ZIP-paket är redo att köras som det är och inte kör någon byggautomatisering. Om du vill aktivera samma byggautomatisering som i en Git-distribution anger du appinställningen SCM_DO_BUILD_DURING_DEPLOYMENT
genom att köra följande kommando i Cloud Shell:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Mer information finns i Kudu-dokumentationen.
Du kan distribuera ditt WAR-, JAR- eller EAR-paket till App Service för att köra din Java-webbapp med azure CLI, PowerShell eller Kudu-publicerings-API:et.
Distributionsprocessen som visas här placerar paketet på appens innehållsresurs med rätt namngivningskonvention och katalogstruktur. Mer information finns i Kudu publicera API-referens. Vi rekommenderar den här metoden. Om du distribuerar WAR/JAR/EAR-paket med FTP eller WebDeploy i stället kan du se okända fel på grund av misstag i namngivningen eller strukturen.
Distribuera ett WAR-paket till Tomcat eller JBoss EAP med hjälp av kommandot az webapp deploy . Ange sökvägen till ditt lokala Java-paket för --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
CLI-kommandot använder Kudu-publicerings-API:et för att distribuera paketet och kan anpassas helt.
Distribuera ett startskript, ett bibliotek och en statisk fil till webbappen med hjälp av kommandot az webapp deploy med parametern --type
.
Om du distribuerar ett startskript på det här sättet använder App Service automatiskt skriptet för att starta appen.
CLI-kommandot använder Kudu-publicerings-API:et för att distribuera filerna. Kommandot kan anpassas helt.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib
az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static
Beroende på webbappens nätverkskonfiguration kan direktåtkomst till appen från utvecklingsmiljön blockeras (se Distribuera till nätverksskyddade platser och Distribuera till nätverksskyddade platser, del 2). I stället för att skicka paketet eller filen direkt till webbappen kan du publicera det till ett lagringssystem som är tillgängligt från webbappen och utlösa appen för att hämta ZIP-filen från lagringsplatsen.
Fjärr-URL:en kan vara valfri offentligt tillgänglig plats, men det är bäst att använda en bloblagringscontainer med en SAS-nyckel för att skydda den.
Använd kommandot az webapp deploy
som du skulle göra i de andra avsnitten, men använd --src-url
i stället för --src-path
. I följande exempel används parametern --src-url
för att ange URL:en för en ZIP-fil som finns i ett Azure Storage-konto.
az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip
Med publish
Kudu-API:et kan du ange samma parametrar från CLI-kommandot som URL-frågeparametrar. För att autentisera med Kudu REST API rekommenderar vi tokenautentisering, men du kan också använda grundläggande autentisering med appens autentiseringsuppgifter för distribution.
I följande tabell visas tillgängliga frågeparametrar, deras tillåtna värden och beskrivningar.
Nyckel | Tillåtna värden | beskrivning | Obligatoriskt | Typ |
---|---|---|---|---|
type |
war |jar |ear |lib |startup |static |zip |
Typen av artefakt som distribueras anger standardmålsökvägen och informerar webbappen om hur distributionen ska hanteras. - type=zip : Distribuera ett ZIP-paket genom att packa upp innehållet till /home/site/wwwroot .
target-path parametern är valfri. - type=war : Distribuera ett WAR-paket. Som standard distribueras WAR-paketet till /home/site/wwwroot/app.war . Målsökvägen kan anges med target-path . - type=jar : Distribuera ett JAR-paket till /home/site/wwwroot/app.jar . Parametern target-path ignoreras - type=ear : Distribuera ett EAR-paket till /home/site/wwwroot/app.ear . Parametern target-path ignoreras - type=lib : Distribuera en JAR-biblioteksfil. Som standard distribueras filen till /home/site/libs . Målsökvägen kan anges med target-path . - type=static : Distribuera en statisk fil, till exempel ett skript. Som standard distribueras filen till /home/site/wwwroot . - type=startup : Distribuera ett skript som App Service automatiskt använder som startskript för din app. Som standard distribueras skriptet till D:\home\site\scripts\<name-of-source> för Windows och home/site/wwwroot/startup.sh för Linux. Målsökvägen kan anges med target-path . |
Ja | String |
restart |
true |false |
Som standard startar API:et om appen efter distributionsåtgärden (restart=true ). Om du vill distribuera flera artefakter förhindrar du omstarter av alla utom den slutliga distributionen genom att ange restart=false . |
Nej | Booleskt |
clean |
true |false |
Anger om måldistributionen ska rensas (tas bort) innan artefakten distribueras där. | Nej | Booleskt |
ignorestack |
true |false |
Publicerings-API:et WEBSITE_STACK använder miljövariabeln för att välja säkra standardvärden beroende på webbplatsens språkstack. Om du ställer in den här parametern på false inaktiveras alla språkspecifika standardvärden. |
Nej | Booleskt |
target-path |
En absolut sökväg | Den absoluta sökväg som artefakten ska distribueras till. Till exempel "/home/site/deployments/tools/driver.jar" , "/home/site/scripts/helper.sh" . |
Nej | String |
Om du vill ha mer avancerade distributionsscenarier kan du prova att distribuera till Azure med Git. Git-baserad distribution till Azure möjliggör versionskontroll, paketåterställning, MSBuild med mera.
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Utbildningsväg
Utbildningsväg – Distribuera en webbplats till Azure med Azure App Service - Training
I den här utbildningsvägen lär du dig att använda Azure App Service för att skapa och distribuera din webbplats utan underliggande servrar, lagring eller nätverkstillgångar.
Dokumentation
Konfigurera kontinuerlig distribution - Azure App Service
Lär dig hur du aktiverar CI/CD till Azure App Service från GitHub, Bitbucket, Azure Repos eller andra lagringsplatser. Välj den byggpipeline som passar dina behov.
Kör din app från ett ZIP-paket - Azure App Service
Distribuera appens ZIP-paket med atomitet. Förbättra förutsägbarheten och tillförlitligheten för appens beteende under ZIP-distributionsprocessen.
Distribuera från den lokala Git-lagringsplatsen - Azure App Service
Lär dig hur du aktiverar lokal Git-distribution till Azure App Service. Ett av de enklaste sätten att distribuera kod från din lokala dator.