This article will show the configuration commands required to complete the objectives on the exam guide for the AZ-104. The article information is updated as I complete the respective tasks.
Create and configure Azure App Service
Azure CLI
# Replace the following URL with a public GitHub repo URL
gitrepo=https://github.com/Azure-Samples/php-docs-hello-world webappname=mywebapp$RANDOM
# Create a resource group.
az group create –location eastus –name myRG
# Create an App Service plan in `FREE` tier.
az appservice plan create –name $webappname –resource-group myRG –sku FREE
# Create a web app.
az webapp create –name $webappname –resource-group myRG –plan $webappname
# Deploy code from a public GitHub repository.
az webapp deployment source config –name $webappname –resource-group myRG \
–repo-url $gitrepo –branch master –manual-integration
# Copy the result of the following command into a browser to see the web app.
echo http://$webappname.azurewebsites.net
PowerShell
# Replace the following URL with a public GitHub repo URL
$gitrepo=”https://github.com/Azure-Samples/app-service-web-dotnet-get-started.git”
$webappname=”mywebapp$(Get-Random)”
$location=”West Europe”
# Create a resource group.
New-AzResourceGroup -Name myRG -Location $location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location -ResourceGroupName myRG `
-Tier Free
# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName myRG
# Configure GitHub deployment from your GitHub repo and deploy once.
$PropertiesObject = @{ repoUrl = “$gitrepo”; branch = “master”; isManualIntegration = “true”; }
Set-AzResource -Properties $PropertiesObject -ResourceGroupName myRG `
-ResourceType Microsoft.Web/sites/sourcecontrols `
-ResourceName $webappname/web -ApiVersion 2015-08-01 -Force
Azure CLI
# Variables
appName=”AppServiceManualScale$random”
location=”WestUS”
# Create a Resource Group
az group create –name myRG –location $location
# Create App Service Plans
az appservice plan create –name AppServiceManualScalePlan –resource-group myRG –location $location –sku B1
# Add a Web App
az webapp create –name $appName –plan AppServiceManualScalePlan –resource-group myRG
# Scale Web App to 2 Workers
az appservice plan update –number-of-workers 2 –name AppServiceManualScalePlan \
–resource-group myRG
PowerShell
# Comment
# Generates a Random Value
$Random=(New-Guid).ToString().Substring(0,8)
# Variables
$RG=”myResourceGroup$random”
$AppName=”AppServiceManualScale$random”
$Location=”WestUS”
# Create a Resource Group
New-AzResourceGroup -Name $RG -Location $Location
# Create an App Service Plan
New-AzAppservicePlan -Name AppServiceManualScalePlan -ResourceGroupName $RG `
-Location $Location -Tier Basic
# Create a Web App in the App Service Plan
New-AzWebApp -Name $AppName -ResourceGroupName $RG -Location $Location `
-AppServicePlan AppServiceManualScalePlan
# Scale Web App to 2 Workers
Set-AzAppServicePlan -NumberofWorkers 2 -Name AppServiceManualScalePlan `
-ResourceGroupName $RG
Azure CLI
# Comment
az noun verb –name variable
PowerShell
# Comment
Verb-Noun -Parameters variable
Azure CLI
# Comment
az noun verb –name variable
PowerShell
# Comment
Verb-Noun -Parameters variable
- Configure custome domain names
Azure CLI
# Variable
fqdn=<Replace with www.{yourdomain}>
webappname=mywebapp$RANDOM
# Create a resource group.
az group create –location westeurope –name myResourceGroup
# Create an App Service plan in SHARED tier (minimum required by custom domains).
az appservice plan create –name $webappname \
–resource-group myResourceGroup –sku SHARED
# Create a web app.
az webapp create –name $webappname –resource-group myResourceGroup \
–plan $webappname
echo “Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net” read -p “Press [Enter] key when ready …”
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname “www” and point it your web app’s default domain name.
# Map your prepared custom domain name to the web app.
az webapp config hostname add –webapp-name $webappname \
–resource-group myResourceGroup \
–hostname $fqdn
echo “You can now browse to http://$fqdn”
PowerShell
# Variable
$fqdn=”<Replace with your custom domain name>”
$webappname=”mywebapp$(Get-Random)”
$location=”West Europe”
# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free
# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname
Write-Host “Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net” Read-Host “Press [Enter] key when ready …”
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname “www” and point it your web app’s default domain name.
# Upgrade App Service plan to Shared tier (minimum required by custom domains)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Shared
# Add a custom domain name to the web app.
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,”$webappname.azurewebsites.net”)
The offline backup is a full backup each time and not an incremental copy.
Azure CLI
#
groupname=”myResourceGroup”
planname=”myAppServicePlan”
webappname=mywebapp$RANDOM
storagename=mywebappstorage$RANDOM
location=”WestEurope”
container=”appbackup”
backupname=”backup1″
expirydate=$(date -I -d “$(date) + 1 month”)
# Create a Resource Group
az group create –name $groupname –location $location
# Create a Storage Account
az storage account create –name $storagename \
–resource-group $groupname –location $location \
–sku Standard_LRS
# Create a storage container
az storage container create –account-name $storagename –name $container
# Generates an SAS token for the storage container, valid for one month.
# NOTE: You can use the same SAS token to make backups in App Service until –expiry sastoken=$(az storage container generate-sas –account-name $storagename –name $container \ –expiry $expirydate –permissions rwdl –output tsv)
# Construct the SAS URL for the container sasurl=https://$storagename.blob.core.windows.net/$container?$sastoken
# Create an App Service plan in Standard tier. Standard tier allows one backup per day.
az appservice plan create –name $planname –resource-group $groupname –location $location \
–sku S1
# Create a web app
az webapp create –name $webappname –plan $planname –resource-group $groupname
# Create a one-time backup
az webapp config backup create –resource-group $groupname –webapp-name $webappname \
–backup-name $backupname –container-url $sasurl
# List statuses of all backups that are complete or currently executing.
az webapp config backup list –resource-group $groupname –webapp-name $webappname
PowerShell
# Variables
$webappname=”mywebapp$(Get-Random -Minimum 100000 -Maximum 999999)” $storagename=”$($webappname)storage”
$container=”appbackup”
$location=”West Europe”
$backupname=”backup1″
# Create a resource group.
New-AzResourceGroup -Name myResourceGroup -Location $location
# Create a storage account.
$storage = New-AzStorageAccount -ResourceGroupName myResourceGroup `
-Name $storagename -SkuName Standard_LRS -Location $location
# Create a storage container.
New-AzStorageContainer -Name $container -Context $storage.Context
# Generates an SAS token for the storage container, valid for one month.
# NOTE: You can use the same SAS token to make backups in Web Apps until -ExpiryTime
$sasUrl = New-AzStorageContainerSASToken -Name $container -Permission rwdl `
-Context $storage.Context -ExpiryTime (Get-Date).AddMonths(1) -FullUri
# Create an App Service plan in Standard tier. Standard tier allows one backup per day.
New-AzAppServicePlan -ResourceGroupName myResourceGroup -Name $webappname `
-Location $location -Tier Standard
# Create a web app.
New-AzWebApp -ResourceGroupName myResourceGroup -Name $webappname ` -Location $location -AppServicePlan $webappname
# Create a one-time backup
New-AzWebAppBackup -ResourceGroupName myResourceGroup -Name $webappname `
-StorageAccountUrl $sasUrl -BackupName $backupname
# List statuses of all backups that are complete or currently executing.
Get-AzWebAppBackupList -ResourceGroupName myResourceGroup -Name $webappname
- Configure networking settings
Azure CLI
# Comment
az noun verb –name variable
PowerShell
# Comment
Verb-Noun -Parameters variable
- Configure deployment settings
Azure CLI
# Comment
az noun verb –name variable
PowerShell
# Comment
Verb-Noun -Parameters variable