Search code examples
powershellazureazure-web-app-serviceazure-api-apps

Azure App Service ApiApp


I am trying to create an API App in Azure App Service with PowerShell.

The cmdlet I am calling always create a Web App by default. If it is possible, I would like to know how I can specify the type/kind to be Api App instead of Web App?

New-AzureRmWebApp -Name $name -Location $location -AppServicePlan $plan -ResourceGroupName $resourceGroup

From my reading there is not much different between both except the icon, is it worth it to set the type to "Api App" if it's what my app is all about?

I am using version 5.4.0 of AzureRM PowerShell module.

> Get-Module "AzureRM"

ModuleType Version    Name                                                 
---------- -------    ----
Script     5.4.0      AzureRM

Solution

  • Just call New-AzureRmResource instead and pass in -Kind 'api':

    # CREATE "just-an-api" API App
    
    $ResourceLocation = "West US"
    $ResourceName = "just-an-api"
    $ResourceGroupName = "demo"
    $PropertiesObject = @{
        # serverFarmId points to the App Service Plan resource id
        serverFarmId = "/subscriptions/SUBSCRIPTION-GUID/resourceGroups/demo/providers/Microsoft.Web/serverfarms/plan1"
    }
    
    New-AzureRmResource -Location $ResourceLocation `
        -PropertyObject $PropertiesObject `
        -ResourceGroupName $ResourceGroupName `
        -ResourceType Microsoft.Web/sites `
        -ResourceName "just-an-api/$ResourceName" `
        -Kind 'api' `
        -ApiVersion 2016-08-01 -Force
    

    ..which produces an API App, a Microsoft.Web/sites resource type of the api kind: Portal screenshot

    Hold on.. How did you come up with this stuff?

    Visit https://resources.azure.com and navigate to an existing API App, build the PowerShell syntax by combining the PowerShell tab with the desired values from the JSON resource definition.