Azure App Service includes deployment slots that help to improve the way in which updates to your code can be deployed to production.
In this hands-on lab, we’ll use Azure CLI within the Cloud Shell, in order create and use deployment slots for a simple web application.
The Cloud Shell includes Azure CLI and the .NET Core CLI, which we will use to perform all tasks.
**Scenario**
You’ve recently been employed as a cloud developer, and have been asked to perform a proof of concept using Azure App Service deployment slots.
In order to perform this proof of concept, you will need to:
* Deploy a simple .NET Core web application to a new Web App in Azure App Service
* Make changes to your web application, and deploy these to a staging slot
* Perform a slot swap, so that your changes are promoted to production
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Set up a .NET Core Web App in Azure App Service
Use the below commands in Cloud Shell (Bash) for guidance:
- Create a new demonstration web application:
dotnet new webapp
- Build the web application:
dotnet build
- Create and deploy your web app:
az webapp up -n APPNAME -g RESOURCEGROUP --sku s1
- Create a new demonstration web application:
- Update your App and Upload to a Staging Slot
Use the below commands in Cloud Shell (Bash) for guidance:
- Update your application, for example:
code Pages/Index.cshtml
- Create a staging slot:
az webapp deployment slot create --name APPNAME -g RESOURCEGROUP --slot staging
- Deploy to the staging slot:
a) Publish the updated code:dotnet publish -o pub
b) Zip for deployment:cd pub; zip -r webapp.zip .
c) ZipDeploy to the staging slot:az webapp deployment source config-zip --name APPNAME --resource-group RESOURCEGROUP --src webapp.zip --slot staging
- Update your application, for example:
- Swap Staging and Production Slots
Use the below commands in Cloud Shell (Bash) for guidance:
- Swap staging to production:
az webapp deployment slot swap -n APPNAME -g RESOURCEGROUP --slot staging --target-slot production
- Swap staging to production: