Microsoft.Web sites 2020-10-01
Bicep resource definition
The sites resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Web/sites resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.Web/sites@2020-10-01' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
kind: 'string'
location: 'string'
name: 'string'
properties: {
clientAffinityEnabled: bool
clientCertEnabled: bool
clientCertExclusionPaths: 'string'
clientCertMode: 'string'
cloningInfo: {
appSettingsOverrides: {
{customized property}: 'string'
}
cloneCustomHostNames: bool
cloneSourceControl: bool
configureLoadBalancing: bool
correlationId: 'string'
hostingEnvironment: 'string'
overwrite: bool
sourceWebAppId: 'string'
sourceWebAppLocation: 'string'
trafficManagerProfileId: 'string'
trafficManagerProfileName: 'string'
}
containerSize: int
customDomainVerificationId: 'string'
dailyMemoryTimeQuota: int
enabled: bool
hostingEnvironmentProfile: {
id: 'string'
}
hostNamesDisabled: bool
hostNameSslStates: [
{
hostType: 'string'
name: 'string'
sslState: 'string'
thumbprint: 'string'
toUpdate: bool
virtualIP: 'string'
}
]
httpsOnly: bool
hyperV: bool
isXenon: bool
redundancyMode: 'string'
reserved: bool
scmSiteAlsoStopped: bool
serverFarmId: 'string'
siteConfig: {
acrUseManagedIdentityCreds: bool
acrUserManagedIdentityID: 'string'
alwaysOn: bool
apiDefinition: {
url: 'string'
}
apiManagementConfig: {
id: 'string'
}
appCommandLine: 'string'
appSettings: [
{
name: 'string'
value: 'string'
}
]
autoHealEnabled: bool
autoHealRules: {
actions: {
actionType: 'string'
customAction: {
exe: 'string'
parameters: 'string'
}
minProcessExecutionTime: 'string'
}
triggers: {
privateBytesInKB: int
requests: {
count: int
timeInterval: 'string'
}
slowRequests: {
count: int
timeInterval: 'string'
timeTaken: 'string'
}
statusCodes: [
{
count: int
status: int
subStatus: int
timeInterval: 'string'
win32Status: int
}
]
}
}
autoSwapSlotName: 'string'
connectionStrings: [
{
connectionString: 'string'
name: 'string'
type: 'string'
}
]
cors: {
allowedOrigins: [
'string'
]
supportCredentials: bool
}
defaultDocuments: [
'string'
]
detailedErrorLoggingEnabled: bool
documentRoot: 'string'
experiments: {
rampUpRules: [
{
actionHostName: 'string'
changeDecisionCallbackUrl: 'string'
changeIntervalInMinutes: int
changeStep: int
maxReroutePercentage: int
minReroutePercentage: int
name: 'string'
reroutePercentage: int
}
]
}
ftpsState: 'string'
handlerMappings: [
{
arguments: 'string'
extension: 'string'
scriptProcessor: 'string'
}
]
healthCheckPath: 'string'
http20Enabled: bool
httpLoggingEnabled: bool
ipSecurityRestrictions: [
{
action: 'string'
description: 'string'
headers: {
{customized property}: [
'string'
]
}
ipAddress: 'string'
name: 'string'
priority: int
subnetMask: 'string'
subnetTrafficTag: int
tag: 'string'
vnetSubnetResourceId: 'string'
vnetTrafficTag: int
}
]
javaContainer: 'string'
javaContainerVersion: 'string'
javaVersion: 'string'
limits: {
maxDiskSizeInMb: int
maxMemoryInMb: int
maxPercentageCpu: int
}
linuxFxVersion: 'string'
loadBalancing: 'string'
localMySqlEnabled: bool
logsDirectorySizeLimit: int
managedPipelineMode: 'string'
managedServiceIdentityId: int
minTlsVersion: 'string'
netFrameworkVersion: 'string'
nodeVersion: 'string'
numberOfWorkers: int
phpVersion: 'string'
powerShellVersion: 'string'
preWarmedInstanceCount: int
publishingUsername: 'string'
push: {
kind: 'string'
properties: {
dynamicTagsJson: 'string'
isPushEnabled: bool
tagsRequiringAuth: 'string'
tagWhitelistJson: 'string'
}
}
pythonVersion: 'string'
remoteDebuggingEnabled: bool
remoteDebuggingVersion: 'string'
requestTracingEnabled: bool
requestTracingExpirationTime: 'string'
scmIpSecurityRestrictions: [
{
action: 'string'
description: 'string'
headers: {
{customized property}: [
'string'
]
}
ipAddress: 'string'
name: 'string'
priority: int
subnetMask: 'string'
subnetTrafficTag: int
tag: 'string'
vnetSubnetResourceId: 'string'
vnetTrafficTag: int
}
]
scmIpSecurityRestrictionsUseMain: bool
scmMinTlsVersion: 'string'
scmType: 'string'
tracingOptions: 'string'
use32BitWorkerProcess: bool
virtualApplications: [
{
physicalPath: 'string'
preloadEnabled: bool
virtualDirectories: [
{
physicalPath: 'string'
virtualPath: 'string'
}
]
virtualPath: 'string'
}
]
vnetName: 'string'
vnetPrivatePortsCount: int
vnetRouteAllEnabled: bool
webSocketsEnabled: bool
windowsFxVersion: 'string'
xManagedServiceIdentityId: int
}
storageAccountRequired: bool
}
tags: {
{customized property}: 'string'
}
}
Property values
ApiDefinitionInfo
Name | Description | Value |
---|---|---|
url | The URL of the API definition. | string |
ApiManagementConfig
Name | Description | Value |
---|---|---|
id | APIM-Api Identifier. | string |
AutoHealActions
Name | Description | Value |
---|---|---|
actionType | Predefined action to be taken. | 'CustomAction' 'LogEvent' 'Recycle' |
customAction | Custom action to be taken. | AutoHealCustomAction |
minProcessExecutionTime | Minimum time the process must execute before taking the action |
string |
AutoHealCustomAction
Name | Description | Value |
---|---|---|
exe | Executable to be run. | string |
parameters | Parameters for the executable. | string |
AutoHealRules
Name | Description | Value |
---|---|---|
actions | Actions to be executed when a rule is triggered. | AutoHealActions |
triggers | Conditions that describe when to execute the auto-heal actions. | AutoHealTriggers |
AutoHealTriggers
Name | Description | Value |
---|---|---|
privateBytesInKB | A rule based on private bytes. | int |
requests | A rule based on total requests. | RequestsBasedTrigger |
slowRequests | A rule based on request execution time. | SlowRequestsBasedTrigger |
statusCodes | A rule based on status codes. | StatusCodesBasedTrigger[] |
CloningInfo
Name | Description | Value |
---|---|---|
appSettingsOverrides | Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. |
CloningInfoAppSettingsOverrides |
cloneCustomHostNames | <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>. | bool |
cloneSourceControl | <code>true</code> to clone source control from source app; otherwise, <code>false</code>. | bool |
configureLoadBalancing | <code>true</code> to configure load balancing for source and destination app. | bool |
correlationId | Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. |
string Constraints: Min length = 36 Max length = 36 Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ |
hostingEnvironment | App Service Environment. | string |
overwrite | <code>true</code> to overwrite destination app; otherwise, <code>false</code>. | bool |
sourceWebAppId | ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. |
string (required) |
sourceWebAppLocation | Location of source app ex: West US or North Europe | string |
trafficManagerProfileId | ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. |
string |
trafficManagerProfileName | Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. | string |
CloningInfoAppSettingsOverrides
Name | Description | Value |
---|
Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties
Name | Description | Value |
---|
ConnStringInfo
Name | Description | Value |
---|---|---|
connectionString | Connection string value. | string |
name | Name of connection string. | string |
type | Type of database. | 'ApiHub' 'Custom' 'DocDb' 'EventHub' 'MySql' 'NotificationHub' 'PostgreSQL' 'RedisCache' 'ServiceBus' 'SQLAzure' 'SQLServer' |
CorsSettings
Name | Description | Value |
---|---|---|
allowedOrigins | Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. |
string[] |
supportCredentials | Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. |
bool |
Experiments
Name | Description | Value |
---|---|---|
rampUpRules | List of ramp-up rules. | RampUpRule[] |
HandlerMapping
Name | Description | Value |
---|---|---|
arguments | Command-line arguments to be passed to the script processor. | string |
extension | Requests with this extension will be handled using the specified FastCGI application. | string |
scriptProcessor | The absolute path to the FastCGI application. | string |
HostingEnvironmentProfile
Name | Description | Value |
---|---|---|
id | Resource ID of the App Service Environment. | string |
HostNameSslState
Name | Description | Value |
---|---|---|
hostType | Indicates whether the hostname is a standard or repository hostname. | 'Repository' 'Standard' |
name | Hostname. | string |
sslState | SSL type. | 'Disabled' 'IpBasedEnabled' 'SniEnabled' |
thumbprint | SSL certificate thumbprint. | string |
toUpdate | Set to <code>true</code> to update existing hostname. | bool |
virtualIP | Virtual IP address assigned to the hostname if IP based SSL is enabled. | string |
IpSecurityRestriction
Name | Description | Value |
---|---|---|
action | Allow or Deny access for this IP range. | string |
description | IP restriction rule description. | string |
headers | IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. |
IpSecurityRestrictionHeaders |
ipAddress | IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. |
string |
name | IP restriction rule name. | string |
priority | Priority of IP restriction rule. | int |
subnetMask | Subnet mask for the range of IP addresses the restriction is valid for. | string |
subnetTrafficTag | (internal) Subnet traffic tag | int |
tag | Defines what this IP filter will be used for. This is to support IP filtering on proxies. | 'Default' 'ServiceTag' 'XffProxy' |
vnetSubnetResourceId | Virtual network resource id | string |
vnetTrafficTag | (internal) Vnet traffic tag | int |
IpSecurityRestrictionHeaders
Name | Description | Value |
---|
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
Name | Description | Value |
---|
Microsoft.Web/sites
Name | Description | Value |
---|---|---|
identity | Managed service identity. | ManagedServiceIdentity |
kind | Kind of resource. | string |
location | Resource Location. | string (required) |
name | The resource name | string (required) |
properties | Site resource specific properties | SiteProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
NameValuePair
Name | Description | Value |
---|---|---|
name | Pair name. | string |
value | Pair value. | string |
PushSettings
Name | Description | Value |
---|---|---|
kind | Kind of resource. | string |
properties | PushSettings resource specific properties | PushSettingsProperties |
PushSettingsProperties
Name | Description | Value |
---|---|---|
dynamicTagsJson | Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. | string |
isPushEnabled | Gets or sets a flag indicating whether the Push endpoint is enabled. | bool (required) |
tagsRequiringAuth | Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. |
string |
tagWhitelistJson | Gets or sets a JSON string containing a list of tags that are in the allowed list for use by the push registration endpoint. | string |
RampUpRule
Name | Description | Value |
---|---|---|
actionHostName | Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. | string |
changeDecisionCallbackUrl | Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ |
string |
changeIntervalInMinutes | Specifies interval in minutes to reevaluate ReroutePercentage. | int |
changeStep | In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches \n<code>MinReroutePercentage</code> or <code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in <code>ChangeIntervalInMinutes</code>.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>. |
int |
maxReroutePercentage | Specifies upper boundary below which ReroutePercentage will stay. | int |
minReroutePercentage | Specifies lower boundary above which ReroutePercentage will stay. | int |
name | Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. | string |
reroutePercentage | Percentage of the traffic which will be redirected to <code>ActionHostName</code>. | int |
RequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
ResourceTags
Name | Description | Value |
---|
SiteConfig
Name | Description | Value |
---|---|---|
acrUseManagedIdentityCreds | Flag to use Managed Identity Creds for ACR pull | bool |
acrUserManagedIdentityID | If using user managed identity, the user managed identity ClientId | string |
alwaysOn | <code>true</code> if Always On is enabled; otherwise, <code>false</code>. | bool |
apiDefinition | Information about the formal API definition for the app. | ApiDefinitionInfo |
apiManagementConfig | Azure API management settings linked to the app. | ApiManagementConfig |
appCommandLine | App command line to launch. | string |
appSettings | Application settings. | NameValuePair[] |
autoHealEnabled | <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>. | bool |
autoHealRules | Auto Heal rules. | AutoHealRules |
autoSwapSlotName | Auto-swap slot name. | string |
connectionStrings | Connection strings. | ConnStringInfo[] |
cors | Cross-Origin Resource Sharing (CORS) settings. | CorsSettings |
defaultDocuments | Default documents. | string[] |
detailedErrorLoggingEnabled | <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>. | bool |
documentRoot | Document root. | string |
experiments | This is work around for polymorphic types. | Experiments |
ftpsState | State of FTP / FTPS service | 'AllAllowed' 'Disabled' 'FtpsOnly' |
handlerMappings | Handler mappings. | HandlerMapping[] |
healthCheckPath | Health check path | string |
http20Enabled | Http20Enabled: configures a web site to allow clients to connect over http2.0 | bool |
httpLoggingEnabled | <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>. | bool |
ipSecurityRestrictions | IP security restrictions for main. | IpSecurityRestriction[] |
javaContainer | Java container. | string |
javaContainerVersion | Java container version. | string |
javaVersion | Java version. | string |
limits | Site limits. | SiteLimits |
linuxFxVersion | Linux App Framework and version | string |
loadBalancing | Site load balancing. | 'LeastRequests' 'LeastResponseTime' 'RequestHash' 'WeightedRoundRobin' 'WeightedTotalTraffic' |
localMySqlEnabled | <code>true</code> to enable local MySQL; otherwise, <code>false</code>. | bool |
logsDirectorySizeLimit | HTTP logs directory size limit. | int |
managedPipelineMode | Managed pipeline mode. | 'Classic' 'Integrated' |
managedServiceIdentityId | Managed Service Identity Id | int |
minTlsVersion | MinTlsVersion: configures the minimum version of TLS required for SSL requests | '1.0' '1.1' '1.2' |
netFrameworkVersion | .NET Framework version. | string |
nodeVersion | Version of Node.js. | string |
numberOfWorkers | Number of workers. | int |
phpVersion | Version of PHP. | string |
powerShellVersion | Version of PowerShell. | string |
preWarmedInstanceCount | Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans |
int Constraints: Min value = 0 Max value = 10 |
publishingUsername | Publishing user name. | string |
push | Push endpoint settings. | PushSettings |
pythonVersion | Version of Python. | string |
remoteDebuggingEnabled | <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>. | bool |
remoteDebuggingVersion | Remote debugging version. | string |
requestTracingEnabled | <code>true</code> if request tracing is enabled; otherwise, <code>false</code>. | bool |
requestTracingExpirationTime | Request tracing expiration time. | string |
scmIpSecurityRestrictions | IP security restrictions for scm. | IpSecurityRestriction[] |
scmIpSecurityRestrictionsUseMain | IP security restrictions for scm to use main. | bool |
scmMinTlsVersion | ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site | '1.0' '1.1' '1.2' |
scmType | SCM type. | 'BitbucketGit' 'BitbucketHg' 'CodePlexGit' 'CodePlexHg' 'Dropbox' 'ExternalGit' 'ExternalHg' 'GitHub' 'LocalGit' 'None' 'OneDrive' 'Tfs' 'VSO' 'VSTSRM' |
tracingOptions | Tracing options. | string |
use32BitWorkerProcess | <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>. | bool |
virtualApplications | Virtual applications. | VirtualApplication[] |
vnetName | Virtual Network name. | string |
vnetPrivatePortsCount | The number of private ports assigned to this app. These will be assigned dynamically on runtime. | int |
vnetRouteAllEnabled | Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. | bool |
webSocketsEnabled | <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>. | bool |
windowsFxVersion | Xenon App Framework and version | string |
xManagedServiceIdentityId | Explicit Managed Service Identity Id | int |
SiteLimits
Name | Description | Value |
---|---|---|
maxDiskSizeInMb | Maximum allowed disk size usage in MB. | int |
maxMemoryInMb | Maximum allowed memory usage in MB. | int |
maxPercentageCpu | Maximum allowed CPU usage percentage. | int |
SiteProperties
Name | Description | Value |
---|---|---|
clientAffinityEnabled | <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>. | bool |
clientCertEnabled | <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>. | bool |
clientCertExclusionPaths | client certificate authentication comma-separated exclusion paths | string |
clientCertMode | This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. |
'Optional' 'Required' |
cloningInfo | If specified during app creation, the app is cloned from a source app. | CloningInfo |
containerSize | Size of the function container. | int |
customDomainVerificationId | Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. | string |
dailyMemoryTimeQuota | Maximum allowed daily memory-time quota (applicable on dynamic apps only). | int |
enabled | <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline). | bool |
hostingEnvironmentProfile | App Service Environment to use for the app. | HostingEnvironmentProfile |
hostNamesDisabled | <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>. If <code>true</code>, the app is only accessible via API management process. |
bool |
hostNameSslStates | Hostname SSL states are used to manage the SSL bindings for app's hostnames. | HostNameSslState[] |
httpsOnly | HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests |
bool |
hyperV | Hyper-V sandbox. | bool |
isXenon | Obsolete: Hyper-V sandbox. | bool |
redundancyMode | Site redundancy mode | 'ActiveActive' 'Failover' 'GeoRedundant' 'Manual' 'None' |
reserved | <code>true</code> if reserved; otherwise, <code>false</code>. | bool |
scmSiteAlsoStopped | <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>. | bool |
serverFarmId | Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". | string |
siteConfig | Configuration of the app. | SiteConfig |
storageAccountRequired | Checks if Customer provided storage account is required | bool |
SlowRequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
timeTaken | Time taken. | string |
StatusCodesBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
status | HTTP status code. | int |
subStatus | Request Sub Status. | int |
timeInterval | Time interval. | string |
win32Status | Win32 error code. | int |
VirtualApplication
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
preloadEnabled | <code>true</code> if preloading is enabled; otherwise, <code>false</code>. | bool |
virtualDirectories | Virtual directories for virtual application. | VirtualDirectory[] |
virtualPath | Virtual path. | string |
VirtualDirectory
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
virtualPath | Path to virtual application. | string |
Quickstart samples
The following quickstart samples deploy this resource type.
Bicep File | Description |
---|---|
App Service Environment with Hosting Plan and Azure WebApp | Creates an App Service Environment v2 with an ILB Address in a existing virtual network that will be privately availible. The App Service Environment will contain a Hosting Plan and a Azure Web App |
App Service Quickstart - Linux App | This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows app | This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows app | This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows container app | This template is to be used with /azure/app-service/quickstart-arm-template |
Application Gateway with internal API Management and Web App | Application Gateway routing Internet traffic to a virtual network (internal mode) API Management instance which services a web API hosted in an Azure Web App. |
Azure Cosmos DB Account with Web App | This template deploys an Azure Cosmos DB account, an App Service Plan, and creates a Web App in the App Service Plan. It also adds two Application settings to the Web App that reference the Azure Cosmos DB account endpoint. This way solutions deployed to the Web App can connect to the Azure Cosmos DB account endpoint using those settings. |
Azure Digital Twins with Function and Private Link service | This template creates an Azure Digital Twins service configured with a Virtual Network connected Azure Function that can communicate through a Private Link Endpoint to Digital Twins. It also creates a Private DNS Zone to allow seamless hostname resolution of the Digital Twins Endpoint from the Virtual Network to the Private Endpoint internal subnet IP address. The hostname is stored as a setting to the Azure Function with name 'ADT_ENDPOINT'. |
Azure Function app and an HTTP-triggered function | This example deploys an Azure Function app and an HTTP-triggered function inline in the template. It also deploys a Key Vault and populates a secret with the function app's host key. |
Azure Function App Hosted on Linux Consumption Plan | This template provisions a function app on a Linux Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. |
Azure Function App with a Deployment Slot | This template provisions a function app on a Premium plan with production slot and an additional deployment slot. |
Azure Function App with Event Hub and Managed Identity | his template provisions an Azure Function app on a Linux Consumption plan, along with an Event Hub, Azure Storage, and Application Insights. The function app is able to use managed identity to connect to the Event Hub and Storage account |
Azure Function App with Virtual Network Integration | This template provisions a function app on a Premium plan with regional virtual network integration enabled to a newly created virtual network. |
Azure Traffic Manager web app example | This template shows how to create an Azure Traffic Manager profile for an App Service. |
Build a Web App on Linux with Azure database for MySQL | This template provides a way to deploy Web Apps on Linux with Azure database for MySQL. |
Create a CDN Profile, a CDN Endpoint and a Web App | This template creates a CDN Profile and a CDN Endpoint with a Web App as the origin |
Create a web app on Azure with Java 13 and Tomcat 9 enabled | This template creates a web app on azure with Java 13 and Tomcat 9 enabled allowing you to run Java applications in Azure. Template was authored by Donovan Brown of Microsoft. |
Create a Web App plus Redis Cache using a template | This template creates an Azure Web App with Redis cache. |
Create a Web App, PE and Application Gateway v2 | This template creates an Azure Web App with Private endpoint in Azure Virtual Network Subnet , an Application Gateway v2. The Application Gateway is deployed in a vNet (subnet). The Web App restricts access to traffic from the subnet using private endpoint |
Create a zero touch Azure Cosmos account and Azure Web App | This template creates an Azure Cosmos account, injects the Cosmos DB endpoint and keys into Azure Web App settings, then deploys an ASP MVC web app from GitHub. |
Create Function App and private endpoint-secured Storage | This template allows you to deploy an Azure Function App that communicates with Azure Storage over private endpoints. |
Deploy a basic Linux web app | This template allows you to deploy an app service plan and a basic Linux web app |
Deploy an app service with regional VNet integration | This template allows you to deploy an app service plan and a basic Windows web app, with regional VNet integration enabled to a newly created virtual network |
Deploy an AZ enabled Azure Function Premium plan | This template allows you to deploy an Azure Function Premium plan with availability zones support, including an availability zones enabled storage account. |
Deploy an Azure Function Premium plan with vnet integration | This template allows you to deploy an Azure Function Premium plan with regional virtual network integration enabled to a newly created virtual network. |
Django app | This template allows you to create an App Service for deploying a Django app. |
Flask app service | This template allows you to create an App Service for deploying a Flask app. |
Front Door Premium with App Service origin and Private Link | This template creates a Front Door Premium and an App Service, and uses a private endpoint for Front Door to send traffic to the application. |
Front Door Standard/Premium with App Service origin | This template creates a Front Door Standard/Premium, an App Service, and configures the App Service to validate that traffic has come through the Front Door origin. |
Front Door Standard/Premium with Azure Functions origin | This template creates a Front Door Standard/Premium, an Azure Functions app, and configures the function app to validate that traffic has come through the Front Door origin. |
Function App | This template deploy an empty Function App and a hosting plan. |
Function App secured by Azure Frontdoor | This template allows you to deploy an azure premium function protected and published by Azure Frontdoor premium. The conenction between Azure Frontdoor and Azure Functions is protected by Azure Private Link. |
Highly Available Multi-region Web App | This template allows you to create a secure, highly available, multi-region end to end solution with two web apps in different regions behind Azure Front Door |
Moesif API Analytics and Monetization | The template will log API calls from Azure API Management to Moesif API analytics and monetization platform |
Private Function App and private endpoint-secured Storage | This template provisions a function app on a Premium plan that has private endpoints and communicates with Azure Storage over private endpoints. |
Provision a function app on a Consumption plan | This template provisions a function app on a Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. There are other templates available for provisioning on a dedicated hosting plan. |
Provision a function app running on an App Service Plan | This template provisions a function app on a dedicated hosting plan, meaning it will be run and billed just like any App Service site. |
Provision a Web App with a SQL Database | This template provisions a Web App, a SQL Database, AutoScale settings, Alert rules, and App Insights. It configures a connection string in the web app for the database. |
Provision Consumption plan function with a Deployment Slot | This template provisions a function app on a Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. There are other templates available for provisioning on a dedicated hosting plan. |
Secure N-tier Web App | This template allows you to create a secure end to end solution with two web apps with staging slots, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint |
Sonarqube Docker Web App on Linux with Azure SQL | This template deploys Sonarqube in an Azure App Service web app Linux container using the official Sonarqube image and backed by an Azure SQL Server. |
Sonarqube Docker Web App on Linux with PostgreSQL | This template provides a easy way to deploy a Sonarqube docker image (alpine tag) on a Linux Web App with Azure database for PostgreSQL(Preview) |
SonarQube on Web App with PostgreSQL and VNet integration | This template provides easy to deploy SonarQube to Web App on Linux with PostgreSQL Flexible Server, VNet integration and private DNS. |
Web App Deployment from GitHub | This template allows you to create an WebApp linked with a GitHub Repository linked. |
Web App w/ Application Insights sending to Log Analytics | This template will is to help support the new API versions of microsoft.insights/components. Starting with 2020-02-02-preview WorkspaceID will be required when creating Application Inisghts.This template will deploy the App Service Plan, App Service, Application Insights, Log Analytics Workspace and hook it all together. |
Web App with Azure database for MySQL | This template provides a easy way to deploy web app on Azure App Service Web Apps with Azure database for MySQL. |
Web App with Managed Identity, SQL Server and ΑΙ | Simple example to deploy Azure infrastructure for app + data + managed identity + monitoring |
Web App with VNet Injection and Private Endpoint | This template allows you to create a secure end to end solution with two web apps, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint |
ARM template resource definition
The sites resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Web/sites resource, add the following JSON to your template.
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-10-01",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"kind": "string",
"location": "string",
"properties": {
"clientAffinityEnabled": "bool",
"clientCertEnabled": "bool",
"clientCertExclusionPaths": "string",
"clientCertMode": "string",
"cloningInfo": {
"appSettingsOverrides": {
"{customized property}": "string"
},
"cloneCustomHostNames": "bool",
"cloneSourceControl": "bool",
"configureLoadBalancing": "bool",
"correlationId": "string",
"hostingEnvironment": "string",
"overwrite": "bool",
"sourceWebAppId": "string",
"sourceWebAppLocation": "string",
"trafficManagerProfileId": "string",
"trafficManagerProfileName": "string"
},
"containerSize": "int",
"customDomainVerificationId": "string",
"dailyMemoryTimeQuota": "int",
"enabled": "bool",
"hostingEnvironmentProfile": {
"id": "string"
},
"hostNamesDisabled": "bool",
"hostNameSslStates": [
{
"hostType": "string",
"name": "string",
"sslState": "string",
"thumbprint": "string",
"toUpdate": "bool",
"virtualIP": "string"
}
],
"httpsOnly": "bool",
"hyperV": "bool",
"isXenon": "bool",
"redundancyMode": "string",
"reserved": "bool",
"scmSiteAlsoStopped": "bool",
"serverFarmId": "string",
"siteConfig": {
"acrUseManagedIdentityCreds": "bool",
"acrUserManagedIdentityID": "string",
"alwaysOn": "bool",
"apiDefinition": {
"url": "string"
},
"apiManagementConfig": {
"id": "string"
},
"appCommandLine": "string",
"appSettings": [
{
"name": "string",
"value": "string"
}
],
"autoHealEnabled": "bool",
"autoHealRules": {
"actions": {
"actionType": "string",
"customAction": {
"exe": "string",
"parameters": "string"
},
"minProcessExecutionTime": "string"
},
"triggers": {
"privateBytesInKB": "int",
"requests": {
"count": "int",
"timeInterval": "string"
},
"slowRequests": {
"count": "int",
"timeInterval": "string",
"timeTaken": "string"
},
"statusCodes": [
{
"count": "int",
"status": "int",
"subStatus": "int",
"timeInterval": "string",
"win32Status": "int"
}
]
}
},
"autoSwapSlotName": "string",
"connectionStrings": [
{
"connectionString": "string",
"name": "string",
"type": "string"
}
],
"cors": {
"allowedOrigins": [ "string" ],
"supportCredentials": "bool"
},
"defaultDocuments": [ "string" ],
"detailedErrorLoggingEnabled": "bool",
"documentRoot": "string",
"experiments": {
"rampUpRules": [
{
"actionHostName": "string",
"changeDecisionCallbackUrl": "string",
"changeIntervalInMinutes": "int",
"changeStep": "int",
"maxReroutePercentage": "int",
"minReroutePercentage": "int",
"name": "string",
"reroutePercentage": "int"
}
]
},
"ftpsState": "string",
"handlerMappings": [
{
"arguments": "string",
"extension": "string",
"scriptProcessor": "string"
}
],
"healthCheckPath": "string",
"http20Enabled": "bool",
"httpLoggingEnabled": "bool",
"ipSecurityRestrictions": [
{
"action": "string",
"description": "string",
"headers": {
"{customized property}": [ "string" ]
},
"ipAddress": "string",
"name": "string",
"priority": "int",
"subnetMask": "string",
"subnetTrafficTag": "int",
"tag": "string",
"vnetSubnetResourceId": "string",
"vnetTrafficTag": "int"
}
],
"javaContainer": "string",
"javaContainerVersion": "string",
"javaVersion": "string",
"limits": {
"maxDiskSizeInMb": "int",
"maxMemoryInMb": "int",
"maxPercentageCpu": "int"
},
"linuxFxVersion": "string",
"loadBalancing": "string",
"localMySqlEnabled": "bool",
"logsDirectorySizeLimit": "int",
"managedPipelineMode": "string",
"managedServiceIdentityId": "int",
"minTlsVersion": "string",
"netFrameworkVersion": "string",
"nodeVersion": "string",
"numberOfWorkers": "int",
"phpVersion": "string",
"powerShellVersion": "string",
"preWarmedInstanceCount": "int",
"publishingUsername": "string",
"push": {
"kind": "string",
"properties": {
"dynamicTagsJson": "string",
"isPushEnabled": "bool",
"tagsRequiringAuth": "string",
"tagWhitelistJson": "string"
}
},
"pythonVersion": "string",
"remoteDebuggingEnabled": "bool",
"remoteDebuggingVersion": "string",
"requestTracingEnabled": "bool",
"requestTracingExpirationTime": "string",
"scmIpSecurityRestrictions": [
{
"action": "string",
"description": "string",
"headers": {
"{customized property}": [ "string" ]
},
"ipAddress": "string",
"name": "string",
"priority": "int",
"subnetMask": "string",
"subnetTrafficTag": "int",
"tag": "string",
"vnetSubnetResourceId": "string",
"vnetTrafficTag": "int"
}
],
"scmIpSecurityRestrictionsUseMain": "bool",
"scmMinTlsVersion": "string",
"scmType": "string",
"tracingOptions": "string",
"use32BitWorkerProcess": "bool",
"virtualApplications": [
{
"physicalPath": "string",
"preloadEnabled": "bool",
"virtualDirectories": [
{
"physicalPath": "string",
"virtualPath": "string"
}
],
"virtualPath": "string"
}
],
"vnetName": "string",
"vnetPrivatePortsCount": "int",
"vnetRouteAllEnabled": "bool",
"webSocketsEnabled": "bool",
"windowsFxVersion": "string",
"xManagedServiceIdentityId": "int"
},
"storageAccountRequired": "bool"
},
"tags": {
"{customized property}": "string"
}
}
Property values
ApiDefinitionInfo
Name | Description | Value |
---|---|---|
url | The URL of the API definition. | string |
ApiManagementConfig
Name | Description | Value |
---|---|---|
id | APIM-Api Identifier. | string |
AutoHealActions
Name | Description | Value |
---|---|---|
actionType | Predefined action to be taken. | 'CustomAction' 'LogEvent' 'Recycle' |
customAction | Custom action to be taken. | AutoHealCustomAction |
minProcessExecutionTime | Minimum time the process must execute before taking the action |
string |
AutoHealCustomAction
Name | Description | Value |
---|---|---|
exe | Executable to be run. | string |
parameters | Parameters for the executable. | string |
AutoHealRules
Name | Description | Value |
---|---|---|
actions | Actions to be executed when a rule is triggered. | AutoHealActions |
triggers | Conditions that describe when to execute the auto-heal actions. | AutoHealTriggers |
AutoHealTriggers
Name | Description | Value |
---|---|---|
privateBytesInKB | A rule based on private bytes. | int |
requests | A rule based on total requests. | RequestsBasedTrigger |
slowRequests | A rule based on request execution time. | SlowRequestsBasedTrigger |
statusCodes | A rule based on status codes. | StatusCodesBasedTrigger[] |
CloningInfo
Name | Description | Value |
---|---|---|
appSettingsOverrides | Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. |
CloningInfoAppSettingsOverrides |
cloneCustomHostNames | <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>. | bool |
cloneSourceControl | <code>true</code> to clone source control from source app; otherwise, <code>false</code>. | bool |
configureLoadBalancing | <code>true</code> to configure load balancing for source and destination app. | bool |
correlationId | Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. |
string Constraints: Min length = 36 Max length = 36 Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ |
hostingEnvironment | App Service Environment. | string |
overwrite | <code>true</code> to overwrite destination app; otherwise, <code>false</code>. | bool |
sourceWebAppId | ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. |
string (required) |
sourceWebAppLocation | Location of source app ex: West US or North Europe | string |
trafficManagerProfileId | ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. |
string |
trafficManagerProfileName | Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. | string |
CloningInfoAppSettingsOverrides
Name | Description | Value |
---|
Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties
Name | Description | Value |
---|
ConnStringInfo
Name | Description | Value |
---|---|---|
connectionString | Connection string value. | string |
name | Name of connection string. | string |
type | Type of database. | 'ApiHub' 'Custom' 'DocDb' 'EventHub' 'MySql' 'NotificationHub' 'PostgreSQL' 'RedisCache' 'ServiceBus' 'SQLAzure' 'SQLServer' |
CorsSettings
Name | Description | Value |
---|---|---|
allowedOrigins | Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. |
string[] |
supportCredentials | Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. |
bool |
Experiments
Name | Description | Value |
---|---|---|
rampUpRules | List of ramp-up rules. | RampUpRule[] |
HandlerMapping
Name | Description | Value |
---|---|---|
arguments | Command-line arguments to be passed to the script processor. | string |
extension | Requests with this extension will be handled using the specified FastCGI application. | string |
scriptProcessor | The absolute path to the FastCGI application. | string |
HostingEnvironmentProfile
Name | Description | Value |
---|---|---|
id | Resource ID of the App Service Environment. | string |
HostNameSslState
Name | Description | Value |
---|---|---|
hostType | Indicates whether the hostname is a standard or repository hostname. | 'Repository' 'Standard' |
name | Hostname. | string |
sslState | SSL type. | 'Disabled' 'IpBasedEnabled' 'SniEnabled' |
thumbprint | SSL certificate thumbprint. | string |
toUpdate | Set to <code>true</code> to update existing hostname. | bool |
virtualIP | Virtual IP address assigned to the hostname if IP based SSL is enabled. | string |
IpSecurityRestriction
Name | Description | Value |
---|---|---|
action | Allow or Deny access for this IP range. | string |
description | IP restriction rule description. | string |
headers | IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. |
IpSecurityRestrictionHeaders |
ipAddress | IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. |
string |
name | IP restriction rule name. | string |
priority | Priority of IP restriction rule. | int |
subnetMask | Subnet mask for the range of IP addresses the restriction is valid for. | string |
subnetTrafficTag | (internal) Subnet traffic tag | int |
tag | Defines what this IP filter will be used for. This is to support IP filtering on proxies. | 'Default' 'ServiceTag' 'XffProxy' |
vnetSubnetResourceId | Virtual network resource id | string |
vnetTrafficTag | (internal) Vnet traffic tag | int |
IpSecurityRestrictionHeaders
Name | Description | Value |
---|
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
Name | Description | Value |
---|
Microsoft.Web/sites
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2020-10-01' |
identity | Managed service identity. | ManagedServiceIdentity |
kind | Kind of resource. | string |
location | Resource Location. | string (required) |
name | The resource name | string (required) |
properties | Site resource specific properties | SiteProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.Web/sites' |
NameValuePair
Name | Description | Value |
---|---|---|
name | Pair name. | string |
value | Pair value. | string |
PushSettings
Name | Description | Value |
---|---|---|
kind | Kind of resource. | string |
properties | PushSettings resource specific properties | PushSettingsProperties |
PushSettingsProperties
Name | Description | Value |
---|---|---|
dynamicTagsJson | Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. | string |
isPushEnabled | Gets or sets a flag indicating whether the Push endpoint is enabled. | bool (required) |
tagsRequiringAuth | Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. |
string |
tagWhitelistJson | Gets or sets a JSON string containing a list of tags that are in the allowed list for use by the push registration endpoint. | string |
RampUpRule
Name | Description | Value |
---|---|---|
actionHostName | Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. | string |
changeDecisionCallbackUrl | Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ |
string |
changeIntervalInMinutes | Specifies interval in minutes to reevaluate ReroutePercentage. | int |
changeStep | In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches \n<code>MinReroutePercentage</code> or <code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in <code>ChangeIntervalInMinutes</code>.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>. |
int |
maxReroutePercentage | Specifies upper boundary below which ReroutePercentage will stay. | int |
minReroutePercentage | Specifies lower boundary above which ReroutePercentage will stay. | int |
name | Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. | string |
reroutePercentage | Percentage of the traffic which will be redirected to <code>ActionHostName</code>. | int |
RequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
ResourceTags
Name | Description | Value |
---|
SiteConfig
Name | Description | Value |
---|---|---|
acrUseManagedIdentityCreds | Flag to use Managed Identity Creds for ACR pull | bool |
acrUserManagedIdentityID | If using user managed identity, the user managed identity ClientId | string |
alwaysOn | <code>true</code> if Always On is enabled; otherwise, <code>false</code>. | bool |
apiDefinition | Information about the formal API definition for the app. | ApiDefinitionInfo |
apiManagementConfig | Azure API management settings linked to the app. | ApiManagementConfig |
appCommandLine | App command line to launch. | string |
appSettings | Application settings. | NameValuePair[] |
autoHealEnabled | <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>. | bool |
autoHealRules | Auto Heal rules. | AutoHealRules |
autoSwapSlotName | Auto-swap slot name. | string |
connectionStrings | Connection strings. | ConnStringInfo[] |
cors | Cross-Origin Resource Sharing (CORS) settings. | CorsSettings |
defaultDocuments | Default documents. | string[] |
detailedErrorLoggingEnabled | <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>. | bool |
documentRoot | Document root. | string |
experiments | This is work around for polymorphic types. | Experiments |
ftpsState | State of FTP / FTPS service | 'AllAllowed' 'Disabled' 'FtpsOnly' |
handlerMappings | Handler mappings. | HandlerMapping[] |
healthCheckPath | Health check path | string |
http20Enabled | Http20Enabled: configures a web site to allow clients to connect over http2.0 | bool |
httpLoggingEnabled | <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>. | bool |
ipSecurityRestrictions | IP security restrictions for main. | IpSecurityRestriction[] |
javaContainer | Java container. | string |
javaContainerVersion | Java container version. | string |
javaVersion | Java version. | string |
limits | Site limits. | SiteLimits |
linuxFxVersion | Linux App Framework and version | string |
loadBalancing | Site load balancing. | 'LeastRequests' 'LeastResponseTime' 'RequestHash' 'WeightedRoundRobin' 'WeightedTotalTraffic' |
localMySqlEnabled | <code>true</code> to enable local MySQL; otherwise, <code>false</code>. | bool |
logsDirectorySizeLimit | HTTP logs directory size limit. | int |
managedPipelineMode | Managed pipeline mode. | 'Classic' 'Integrated' |
managedServiceIdentityId | Managed Service Identity Id | int |
minTlsVersion | MinTlsVersion: configures the minimum version of TLS required for SSL requests | '1.0' '1.1' '1.2' |
netFrameworkVersion | .NET Framework version. | string |
nodeVersion | Version of Node.js. | string |
numberOfWorkers | Number of workers. | int |
phpVersion | Version of PHP. | string |
powerShellVersion | Version of PowerShell. | string |
preWarmedInstanceCount | Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans |
int Constraints: Min value = 0 Max value = 10 |
publishingUsername | Publishing user name. | string |
push | Push endpoint settings. | PushSettings |
pythonVersion | Version of Python. | string |
remoteDebuggingEnabled | <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>. | bool |
remoteDebuggingVersion | Remote debugging version. | string |
requestTracingEnabled | <code>true</code> if request tracing is enabled; otherwise, <code>false</code>. | bool |
requestTracingExpirationTime | Request tracing expiration time. | string |
scmIpSecurityRestrictions | IP security restrictions for scm. | IpSecurityRestriction[] |
scmIpSecurityRestrictionsUseMain | IP security restrictions for scm to use main. | bool |
scmMinTlsVersion | ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site | '1.0' '1.1' '1.2' |
scmType | SCM type. | 'BitbucketGit' 'BitbucketHg' 'CodePlexGit' 'CodePlexHg' 'Dropbox' 'ExternalGit' 'ExternalHg' 'GitHub' 'LocalGit' 'None' 'OneDrive' 'Tfs' 'VSO' 'VSTSRM' |
tracingOptions | Tracing options. | string |
use32BitWorkerProcess | <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>. | bool |
virtualApplications | Virtual applications. | VirtualApplication[] |
vnetName | Virtual Network name. | string |
vnetPrivatePortsCount | The number of private ports assigned to this app. These will be assigned dynamically on runtime. | int |
vnetRouteAllEnabled | Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. | bool |
webSocketsEnabled | <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>. | bool |
windowsFxVersion | Xenon App Framework and version | string |
xManagedServiceIdentityId | Explicit Managed Service Identity Id | int |
SiteLimits
Name | Description | Value |
---|---|---|
maxDiskSizeInMb | Maximum allowed disk size usage in MB. | int |
maxMemoryInMb | Maximum allowed memory usage in MB. | int |
maxPercentageCpu | Maximum allowed CPU usage percentage. | int |
SiteProperties
Name | Description | Value |
---|---|---|
clientAffinityEnabled | <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>. | bool |
clientCertEnabled | <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>. | bool |
clientCertExclusionPaths | client certificate authentication comma-separated exclusion paths | string |
clientCertMode | This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. |
'Optional' 'Required' |
cloningInfo | If specified during app creation, the app is cloned from a source app. | CloningInfo |
containerSize | Size of the function container. | int |
customDomainVerificationId | Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. | string |
dailyMemoryTimeQuota | Maximum allowed daily memory-time quota (applicable on dynamic apps only). | int |
enabled | <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline). | bool |
hostingEnvironmentProfile | App Service Environment to use for the app. | HostingEnvironmentProfile |
hostNamesDisabled | <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>. If <code>true</code>, the app is only accessible via API management process. |
bool |
hostNameSslStates | Hostname SSL states are used to manage the SSL bindings for app's hostnames. | HostNameSslState[] |
httpsOnly | HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests |
bool |
hyperV | Hyper-V sandbox. | bool |
isXenon | Obsolete: Hyper-V sandbox. | bool |
redundancyMode | Site redundancy mode | 'ActiveActive' 'Failover' 'GeoRedundant' 'Manual' 'None' |
reserved | <code>true</code> if reserved; otherwise, <code>false</code>. | bool |
scmSiteAlsoStopped | <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>. | bool |
serverFarmId | Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". | string |
siteConfig | Configuration of the app. | SiteConfig |
storageAccountRequired | Checks if Customer provided storage account is required | bool |
SlowRequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
timeTaken | Time taken. | string |
StatusCodesBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
status | HTTP status code. | int |
subStatus | Request Sub Status. | int |
timeInterval | Time interval. | string |
win32Status | Win32 error code. | int |
VirtualApplication
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
preloadEnabled | <code>true</code> if preloading is enabled; otherwise, <code>false</code>. | bool |
virtualDirectories | Virtual directories for virtual application. | VirtualDirectory[] |
virtualPath | Virtual path. | string |
VirtualDirectory
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
virtualPath | Path to virtual application. | string |
Quickstart templates
The following quickstart templates deploy this resource type.
Template | Description |
---|---|
Airflow Docker Web App on Linux with PostgreSQL |
This template provides a easy way to deploy a puckel/docker-airflow image (latest tag) on a Linux Web App with Azure database for PostgreSQL |
Airflow Web App with PostgreSQL database on App Services |
A template for deploying Airflow Web App with PostgreSQL database on App Services |
App Service Environment with Azure SQL backend |
This template creates an App Service Environment with an Azure SQL backend along with private endpoints along with associated resources typically used in an private/isolated environment. |
App Service Environment with Hosting Plan and Azure WebApp |
Creates an App Service Environment v2 with an ILB Address in a existing virtual network that will be privately availible. The App Service Environment will contain a Hosting Plan and a Azure Web App |
App Service Quickstart - Linux App |
This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows app |
This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows app |
This template is to be used with /azure/app-service/quickstart-arm-template |
App Service Quickstart - Windows container app |
This template is to be used with /azure/app-service/quickstart-arm-template |
Application Gateway for a Web App with IP Restriction |
This template creates an application gateway in front of an Azure Web App with IP restriction enabled on the Web App. |
Application Gateway with internal API Management and Web App |
Application Gateway routing Internet traffic to a virtual network (internal mode) API Management instance which services a web API hosted in an Azure Web App. |
ASP.NET app |
This template allows you to create an App Service for deploying a ASP.NET app. |
Azure Cosmos DB Account with Web App |
This template deploys an Azure Cosmos DB account, an App Service Plan, and creates a Web App in the App Service Plan. It also adds two Application settings to the Web App that reference the Azure Cosmos DB account endpoint. This way solutions deployed to the Web App can connect to the Azure Cosmos DB account endpoint using those settings. |
Azure Digital Twins with Function and Private Link service |
This template creates an Azure Digital Twins service configured with a Virtual Network connected Azure Function that can communicate through a Private Link Endpoint to Digital Twins. It also creates a Private DNS Zone to allow seamless hostname resolution of the Digital Twins Endpoint from the Virtual Network to the Private Endpoint internal subnet IP address. The hostname is stored as a setting to the Azure Function with name 'ADT_ENDPOINT'. |
Azure Function app and an HTTP-triggered function |
This example deploys an Azure Function app and an HTTP-triggered function inline in the template. It also deploys a Key Vault and populates a secret with the function app's host key. |
Azure Function App Hosted on Dedicated Plan |
This template provisions a function app on a dedicated hosting plan, meaning it will be run and billed just like any App Service site. |
Azure Function App Hosted on Linux Consumption Plan |
This template provisions a function app on a Linux Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. |
Azure Function App Hosted on Premium Plan |
This template provisions a function app on a Premium plan. |
Azure Function App Hosted on Windows Consumption Plan |
This template provisions a function app on a Windows Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. |
Azure Function App with a Deployment Slot |
This template provisions a function app on a Premium plan with production slot and an additional deployment slot. |
Azure Function App with Event Hub and Managed Identity |
his template provisions an Azure Function app on a Linux Consumption plan, along with an Event Hub, Azure Storage, and Application Insights. The function app is able to use managed identity to connect to the Event Hub and Storage account |
Azure Function App with Virtual Network Integration |
This template provisions a function app on a Premium plan with regional virtual network integration enabled to a newly created virtual network. |
Azure Logic App with Function |
This template creates a Serverless app in Azure with Logic Apps and Functions. The Logic App triggers on an HTTP POST, calls the Azure Function, and returns the response. |
Azure Traffic Manager web app example |
This template shows how to create an Azure Traffic Manager profile for an App Service. |
Buffalo Web App |
Start running your Golang Buffalo Application on Azure quickly and cheaply. |
Build a Web App on Linux with Azure database for MySQL |
This template provides a way to deploy Web Apps on Linux with Azure database for MySQL. |
Call custom APIs from Azure Logic Apps |
Although Logic Apps provides hundreds of connectors for various services, you might want to call APIs that run your own code. One of the easiest and most scalable ways to host your own web APIs is by using Azure App Service. This template deploys a Web app for your custom API and secures that API by using Azure Active Directory authentication. |
Create a CDN Profile, a CDN Endpoint and a Web App |
This template creates a CDN Profile and a CDN Endpoint with a Web App as the origin |
Create a function app and call it using a Custom Resource |
This template creates function app used as the workload for a custom resource provider in a template deployment. |
Create a Web App + Redis Cache + SQL DB with a template |
This template creates an Azure Web App with Redis cache and a SQL Database. |
Create a web app on Azure with Java 13 and Tomcat 9 enabled |
This template creates a web app on azure with Java 13 and Tomcat 9 enabled allowing you to run Java applications in Azure. Template was authored by Donovan Brown of Microsoft. |
Create a web app on Azure with Python enabled |
This template creates a web app on azure with Python enabled allowing you to run Python applications in Azure. Template was authored by Donovan Brown of Microsoft. |
Create a Web App plus Redis Cache using a template |
This template creates an Azure Web App with Redis cache. |
Create a Web App protected by Application Gateway v2 |
This template creates an Azure Web App with Access Restriction for an Application Gateway v2. The Application Gateway is deployed in a vNet (subnet) which has a 'Microsoft.Web' Service Endpoint enabled. The Web App restricts access to traffic from the subnet. |
Create a Web App, PE and Application Gateway v2 |
This template creates an Azure Web App with Private endpoint in Azure Virtual Network Subnet , an Application Gateway v2. The Application Gateway is deployed in a vNet (subnet). The Web App restricts access to traffic from the subnet using private endpoint |
Create a zero touch Azure Cosmos account and Azure Web App |
This template creates an Azure Cosmos account, injects the Cosmos DB endpoint and keys into Azure Web App settings, then deploys an ASP MVC web app from GitHub. |
Create an AppServicePlan and App in an App. Service Env. v2 |
Create an AppServicePlan and App in an App Service Environment v2 |
Create an AppServicePlan and App in an ASE |
Create an AppServicePlan and App in an ASE |
Create and assign a standard App Service Certificate |
Creates a standard App Service Certificate, verifies it using an App service App and creates SSL bindings once the certificate is ready |
Create and assign a wildcard App Service Certificate |
Creates a wildcard App Service Certificate, verifies it using an App service Domain and creates SSL bindings on an App Service App once the certificate is ready |
Create Azure App Service Environment With An Web App Added |
Creates an Azure App Service Environment inside A Virtual Network Subnet. This template also adds a Azure Web App inside the App Service Environment. Template originally authored by Callum Brankin of PixelPin |
Create Azure Web app with Blob Storage connection string |
Creates an Azure Web app with Blob Storage connection string, Template originally authored by Jeff Bowles of Microsoft |
Create Function App and private endpoint-secured Storage |
This template allows you to deploy an Azure Function App that communicates with Azure Storage over private endpoints. |
Creates a function app with managed service identity |
Creates a function app with managed service identity enabled with Application Insights set up for logs and metrics. |
Deploy a basic Linux web app |
This template allows you to deploy an app service plan and a basic Linux web app |
Deploy an app service with regional VNet integration |
This template allows you to deploy an app service plan and a basic Windows web app, with regional VNet integration enabled to a newly created virtual network |
Deploy an AZ enabled Azure Function Premium plan |
This template allows you to deploy an Azure Function Premium plan with availability zones support, including an availability zones enabled storage account. |
Deploy an Azure Function Premium plan with vnet integration |
This template allows you to deploy an Azure Function Premium plan with regional virtual network integration enabled to a newly created virtual network. |
Django app |
This template allows you to create an App Service for deploying a Django app. |
Enterprise Governance-AppService, SQL DB, AD, OMS, Runbooks |
Cloud adoption for an Enterprise, small or large, require responsible and efficient governance models to derive value from their cloud deployments. CloudWise (a code-name for the solution), is a composite solution available from Azure Partner QuickStarts, is an adoption enabler for Customers, System Integrators and Partners alike, that delivers a self-serviceable, automated governance and operations solution, focused on Optimizing Your Costs, Improve Your Application(s) Reliability, Reducing Business Risk. The solution highlights the core governance pillars of Visibility and Control. |
EPiserverCMS in Azure |
This template allows you to create resources required for EpiServerCMS deployment in Azure |
eShop Website with ILB ASE |
An App Service Environment is a Premium service plan option of Azure App Service that provides a fully isolated and dedicated environment for securely running Azure App Service apps at high scale, including Web Apps, Mobile Apps, and API Apps. |
Flask app service |
This template allows you to create an App Service for deploying a Flask app. |
Front Door Premium with App Service origin and Private Link |
This template creates a Front Door Premium and an App Service, and uses a private endpoint for Front Door to send traffic to the application. |
Front Door Standard/Premium with App Service origin |
This template creates a Front Door Standard/Premium, an App Service, and configures the App Service to validate that traffic has come through the Front Door origin. |
Front Door Standard/Premium with Azure Functions origin |
This template creates a Front Door Standard/Premium, an Azure Functions app, and configures the function app to validate that traffic has come through the Front Door origin. |
Function App |
This template deploy an empty Function App and a hosting plan. |
Function App on Linux Consumption Plan with Remote Build |
This template provisions a function app on a Linux Consumption plan and perform remote build during code deployment. The app runs on demand and you're billed per execution, with no standing resource committment. |
Function App secured by Azure Frontdoor |
This template allows you to deploy an azure premium function protected and published by Azure Frontdoor premium. The conenction between Azure Frontdoor and Azure Functions is protected by Azure Private Link. |
Highly Available Multi-region Web App |
This template allows you to create a secure, highly available, multi-region end to end solution with two web apps in different regions behind Azure Front Door |
ILB App Service Environment with Azure Firewall |
Resource Manager templates and parameters demonstrating how to deploy App Service environment with Azure Firewall integration |
Java CI/CD using Jenkins and Azure Web Apps |
This is a sample for Java CI/CD using Jenkins and Azure Web Apps. |
Kentico Xperience |
This template facilitates the deployment of resources required to host Kentico Xperience environments in Microsoft Azure. |
Moesif API Analytics and Monetization |
The template will log API calls from Azure API Management to Moesif API analytics and monetization platform |
Node App Service |
This template allows you to create an App Service for deploying a Node app. |
Orchard CMS Video Portal Web App |
This template provides a easy way to deploy Orchard CMS on Azure App Service Web Apps with the Azure Media Services module enabled and configured. |
Private Function App and private endpoint-secured Storage |
This template provisions a function app on a Premium plan that has private endpoints and communicates with Azure Storage over private endpoints. |
Provision a function app on a Consumption plan |
This template provisions a function app on a Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. There are other templates available for provisioning on a dedicated hosting plan. |
Provision a function app running on an App Service Plan |
This template provisions a function app on a dedicated hosting plan, meaning it will be run and billed just like any App Service site. |
Provision a function app with source deployed from GitHub |
This template deploys a Function App hosted in a new dedicated App Service Plan. The Function App has a child resource that enables continous integration and deploys the function code from a GitHub repository. |
Provision a Mobile App with a SQL Database |
This template provisions a Mobile App, SQL Database, and Notification Hub. It configures a connection string in the mobile app for the database and notification hub. |
Provision a Web App with a SQL Database |
This template provisions a Web App, a SQL Database, AutoScale settings, Alert rules, and App Insights. It configures a connection string in the web app for the database. |
Provision Consumption plan function with a Deployment Slot |
This template provisions a function app on a Consumption plan, which is a dynamic hosting plan. The app runs on demand and you're billed per execution, with no standing resource committment. There are other templates available for provisioning on a dedicated hosting plan. |
PubNub Realtime Gateway for Azure Event Hubs |
The PubNub Realtime Gateway for Azure provides a realtime data stream bridge between the PubNub Data Stream Network and Azure Event Hubs. -- consider it a bi-directional bridge between PubNub and Azure! |
Scalable Umbraco CMS Web App |
This template provides a easy way to deploy umbraco CMS web app on Azure App Service Web Apps. |
Secure N-tier Web App |
This template allows you to create a secure end to end solution with two web apps with staging slots, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint |
Simple Umbraco CMS Web App |
This template provides a easy way to deploy umbraco CMS web app on Azure App Service Web Apps. |
Sonarqube Docker Web App on Linux with Azure SQL |
This template deploys Sonarqube in an Azure App Service web app Linux container using the official Sonarqube image and backed by an Azure SQL Server. |
Sonarqube Docker Web App on Linux with MySQL |
This template provides a easy way to deploy a Sonarqube docker image (alpine tag) on a Linux Web App with Azure database for MySQL |
Sonarqube Docker Web App on Linux with PostgreSQL |
This template provides a easy way to deploy a Sonarqube docker image (alpine tag) on a Linux Web App with Azure database for PostgreSQL(Preview) |
SonarQube on Web App with PostgreSQL and VNet integration |
This template provides easy to deploy SonarQube to Web App on Linux with PostgreSQL Flexible Server, VNet integration and private DNS. |
Web App Deployment from GitHub |
This template allows you to create an WebApp linked with a GitHub Repository linked. |
Web App integration with Key Vault |
Deploy a Web App certificate from Key Vault secret and use it for creating SSL binding |
Web App on Linux with PostgreSQL |
This template provides a easy way to deploy Web App on Linux with Azure database for PostgreSQL(Preview). |
Web App on Linux with PostgreSQL |
This template provides a easy way to deploy Web App on Linux with Azure database for PostgreSQL. |
Web App w/ Application Insights sending to Log Analytics |
This template will is to help support the new API versions of microsoft.insights/components. Starting with 2020-02-02-preview WorkspaceID will be required when creating Application Inisghts.This template will deploy the App Service Plan, App Service, Application Insights, Log Analytics Workspace and hook it all together. |
Web App with a custom domain and optional SSL binding |
Create a web app and with a custom domain and optionally add SSL certificate for https encryption. |
Web App with a SQL Database, Azure Cosmos DB, Azure Search |
This template provisions a Web App, a SQL Database, Azure Cosmos DB, Azure Search and Application Insights. |
Web App with Azure database for MySQL |
This template provides a easy way to deploy web app on Azure App Service Web Apps with Azure database for MySQL. |
Web App with custom Deployment slots |
This template provides an easy way to deploy a web app with custom deployment slots on Azure Web Apps. |
Web App with diagnostics logging to Blob Container |
Deploy a Web App with diagnostics logging to Storage Account Blob Container enabled. |
Web App with Managed Identity, SQL Server and ΑΙ |
Simple example to deploy Azure infrastructure for app + data + managed identity + monitoring |
Web App with Private Endpoint |
This template allows you to create a Web App and expose it through Private Endpoint |
Web App with VNet Injection and Private Endpoint |
This template allows you to create a secure end to end solution with two web apps, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint |
WebApp consuming a Azure SQL Private Endpoint |
This template shows how to create a Web app that consumes a private endpoint pointing to Azure SQL Server |
WordPress on App Service with MySQL In App |
This template deploys a WordPress Web App on a Windows App Service with MySQL in app |
Terraform (AzAPI provider) resource definition
The sites resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Web/sites resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Web/sites@2020-10-01"
name = "string"
identity = {
type = "string"
userAssignedIdentities = {
{customized property} = {
}
}
}
kind = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
clientAffinityEnabled = bool
clientCertEnabled = bool
clientCertExclusionPaths = "string"
clientCertMode = "string"
cloningInfo = {
appSettingsOverrides = {
{customized property} = "string"
}
cloneCustomHostNames = bool
cloneSourceControl = bool
configureLoadBalancing = bool
correlationId = "string"
hostingEnvironment = "string"
overwrite = bool
sourceWebAppId = "string"
sourceWebAppLocation = "string"
trafficManagerProfileId = "string"
trafficManagerProfileName = "string"
}
containerSize = int
customDomainVerificationId = "string"
dailyMemoryTimeQuota = int
enabled = bool
hostingEnvironmentProfile = {
id = "string"
}
hostNamesDisabled = bool
hostNameSslStates = [
{
hostType = "string"
name = "string"
sslState = "string"
thumbprint = "string"
toUpdate = bool
virtualIP = "string"
}
]
httpsOnly = bool
hyperV = bool
isXenon = bool
redundancyMode = "string"
reserved = bool
scmSiteAlsoStopped = bool
serverFarmId = "string"
siteConfig = {
acrUseManagedIdentityCreds = bool
acrUserManagedIdentityID = "string"
alwaysOn = bool
apiDefinition = {
url = "string"
}
apiManagementConfig = {
id = "string"
}
appCommandLine = "string"
appSettings = [
{
name = "string"
value = "string"
}
]
autoHealEnabled = bool
autoHealRules = {
actions = {
actionType = "string"
customAction = {
exe = "string"
parameters = "string"
}
minProcessExecutionTime = "string"
}
triggers = {
privateBytesInKB = int
requests = {
count = int
timeInterval = "string"
}
slowRequests = {
count = int
timeInterval = "string"
timeTaken = "string"
}
statusCodes = [
{
count = int
status = int
subStatus = int
timeInterval = "string"
win32Status = int
}
]
}
}
autoSwapSlotName = "string"
connectionStrings = [
{
connectionString = "string"
name = "string"
type = "string"
}
]
cors = {
allowedOrigins = [
"string"
]
supportCredentials = bool
}
defaultDocuments = [
"string"
]
detailedErrorLoggingEnabled = bool
documentRoot = "string"
experiments = {
rampUpRules = [
{
actionHostName = "string"
changeDecisionCallbackUrl = "string"
changeIntervalInMinutes = int
changeStep = int
maxReroutePercentage = int
minReroutePercentage = int
name = "string"
reroutePercentage = int
}
]
}
ftpsState = "string"
handlerMappings = [
{
arguments = "string"
extension = "string"
scriptProcessor = "string"
}
]
healthCheckPath = "string"
http20Enabled = bool
httpLoggingEnabled = bool
ipSecurityRestrictions = [
{
action = "string"
description = "string"
headers = {
{customized property} = [
"string"
]
}
ipAddress = "string"
name = "string"
priority = int
subnetMask = "string"
subnetTrafficTag = int
tag = "string"
vnetSubnetResourceId = "string"
vnetTrafficTag = int
}
]
javaContainer = "string"
javaContainerVersion = "string"
javaVersion = "string"
limits = {
maxDiskSizeInMb = int
maxMemoryInMb = int
maxPercentageCpu = int
}
linuxFxVersion = "string"
loadBalancing = "string"
localMySqlEnabled = bool
logsDirectorySizeLimit = int
managedPipelineMode = "string"
managedServiceIdentityId = int
minTlsVersion = "string"
netFrameworkVersion = "string"
nodeVersion = "string"
numberOfWorkers = int
phpVersion = "string"
powerShellVersion = "string"
preWarmedInstanceCount = int
publishingUsername = "string"
push = {
kind = "string"
properties = {
dynamicTagsJson = "string"
isPushEnabled = bool
tagsRequiringAuth = "string"
tagWhitelistJson = "string"
}
}
pythonVersion = "string"
remoteDebuggingEnabled = bool
remoteDebuggingVersion = "string"
requestTracingEnabled = bool
requestTracingExpirationTime = "string"
scmIpSecurityRestrictions = [
{
action = "string"
description = "string"
headers = {
{customized property} = [
"string"
]
}
ipAddress = "string"
name = "string"
priority = int
subnetMask = "string"
subnetTrafficTag = int
tag = "string"
vnetSubnetResourceId = "string"
vnetTrafficTag = int
}
]
scmIpSecurityRestrictionsUseMain = bool
scmMinTlsVersion = "string"
scmType = "string"
tracingOptions = "string"
use32BitWorkerProcess = bool
virtualApplications = [
{
physicalPath = "string"
preloadEnabled = bool
virtualDirectories = [
{
physicalPath = "string"
virtualPath = "string"
}
]
virtualPath = "string"
}
]
vnetName = "string"
vnetPrivatePortsCount = int
vnetRouteAllEnabled = bool
webSocketsEnabled = bool
windowsFxVersion = "string"
xManagedServiceIdentityId = int
}
storageAccountRequired = bool
}
})
}
Property values
ApiDefinitionInfo
Name | Description | Value |
---|---|---|
url | The URL of the API definition. | string |
ApiManagementConfig
Name | Description | Value |
---|---|---|
id | APIM-Api Identifier. | string |
AutoHealActions
Name | Description | Value |
---|---|---|
actionType | Predefined action to be taken. | 'CustomAction' 'LogEvent' 'Recycle' |
customAction | Custom action to be taken. | AutoHealCustomAction |
minProcessExecutionTime | Minimum time the process must execute before taking the action |
string |
AutoHealCustomAction
Name | Description | Value |
---|---|---|
exe | Executable to be run. | string |
parameters | Parameters for the executable. | string |
AutoHealRules
Name | Description | Value |
---|---|---|
actions | Actions to be executed when a rule is triggered. | AutoHealActions |
triggers | Conditions that describe when to execute the auto-heal actions. | AutoHealTriggers |
AutoHealTriggers
Name | Description | Value |
---|---|---|
privateBytesInKB | A rule based on private bytes. | int |
requests | A rule based on total requests. | RequestsBasedTrigger |
slowRequests | A rule based on request execution time. | SlowRequestsBasedTrigger |
statusCodes | A rule based on status codes. | StatusCodesBasedTrigger[] |
CloningInfo
Name | Description | Value |
---|---|---|
appSettingsOverrides | Application setting overrides for cloned app. If specified, these settings override the settings cloned from source app. Otherwise, application settings from source app are retained. |
CloningInfoAppSettingsOverrides |
cloneCustomHostNames | <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>. | bool |
cloneSourceControl | <code>true</code> to clone source control from source app; otherwise, <code>false</code>. | bool |
configureLoadBalancing | <code>true</code> to configure load balancing for source and destination app. | bool |
correlationId | Correlation ID of cloning operation. This ID ties multiple cloning operations together to use the same snapshot. |
string Constraints: Min length = 36 Max length = 36 Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ |
hostingEnvironment | App Service Environment. | string |
overwrite | <code>true</code> to overwrite destination app; otherwise, <code>false</code>. | bool |
sourceWebAppId | ARM resource ID of the source app. App resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots. |
string (required) |
sourceWebAppLocation | Location of source app ex: West US or North Europe | string |
trafficManagerProfileId | ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}. |
string |
trafficManagerProfileName | Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. | string |
CloningInfoAppSettingsOverrides
Name | Description | Value |
---|
Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties
Name | Description | Value |
---|
ConnStringInfo
Name | Description | Value |
---|---|---|
connectionString | Connection string value. | string |
name | Name of connection string. | string |
type | Type of database. | 'ApiHub' 'Custom' 'DocDb' 'EventHub' 'MySql' 'NotificationHub' 'PostgreSQL' 'RedisCache' 'ServiceBus' 'SQLAzure' 'SQLServer' |
CorsSettings
Name | Description | Value |
---|---|---|
allowedOrigins | Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. |
string[] |
supportCredentials | Gets or sets whether CORS requests with credentials are allowed. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials for more details. |
bool |
Experiments
Name | Description | Value |
---|---|---|
rampUpRules | List of ramp-up rules. | RampUpRule[] |
HandlerMapping
Name | Description | Value |
---|---|---|
arguments | Command-line arguments to be passed to the script processor. | string |
extension | Requests with this extension will be handled using the specified FastCGI application. | string |
scriptProcessor | The absolute path to the FastCGI application. | string |
HostingEnvironmentProfile
Name | Description | Value |
---|---|---|
id | Resource ID of the App Service Environment. | string |
HostNameSslState
Name | Description | Value |
---|---|---|
hostType | Indicates whether the hostname is a standard or repository hostname. | 'Repository' 'Standard' |
name | Hostname. | string |
sslState | SSL type. | 'Disabled' 'IpBasedEnabled' 'SniEnabled' |
thumbprint | SSL certificate thumbprint. | string |
toUpdate | Set to <code>true</code> to update existing hostname. | bool |
virtualIP | Virtual IP address assigned to the hostname if IP based SSL is enabled. | string |
IpSecurityRestriction
Name | Description | Value |
---|---|---|
action | Allow or Deny access for this IP range. | string |
description | IP restriction rule description. | string |
headers | IP restriction rule headers. X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples). The matching logic is .. - If the property is null or empty (default), all hosts(or lack of) are allowed. - A value is compared using ordinal-ignore-case (excluding port number). - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com but not the root domain contoso.com or multi-level foo.bar.contoso.com - Unicode host names are allowed but are converted to Punycode for matching. X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples). The matching logic is .. - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed. - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property. X-Azure-FDID and X-FD-HealthProbe. The matching logic is exact match. |
IpSecurityRestrictionHeaders |
ipAddress | IP address the security restriction is valid for. It can be in form of pure ipv4 address (required SubnetMask property) or CIDR notation such as ipv4/mask (leading bit match). For CIDR, SubnetMask property must not be specified. |
string |
name | IP restriction rule name. | string |
priority | Priority of IP restriction rule. | int |
subnetMask | Subnet mask for the range of IP addresses the restriction is valid for. | string |
subnetTrafficTag | (internal) Subnet traffic tag | int |
tag | Defines what this IP filter will be used for. This is to support IP filtering on proxies. | 'Default' 'ServiceTag' 'XffProxy' |
vnetSubnetResourceId | Virtual network resource id | string |
vnetTrafficTag | (internal) Vnet traffic tag | int |
IpSecurityRestrictionHeaders
Name | Description | Value |
---|
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity. | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
userAssignedIdentities | The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
Name | Description | Value |
---|
Microsoft.Web/sites
Name | Description | Value |
---|---|---|
identity | Managed service identity. | ManagedServiceIdentity |
kind | Kind of resource. | string |
location | Resource Location. | string (required) |
name | The resource name | string (required) |
properties | Site resource specific properties | SiteProperties |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.Web/sites@2020-10-01" |
NameValuePair
Name | Description | Value |
---|---|---|
name | Pair name. | string |
value | Pair value. | string |
PushSettings
Name | Description | Value |
---|---|---|
kind | Kind of resource. | string |
properties | PushSettings resource specific properties | PushSettingsProperties |
PushSettingsProperties
Name | Description | Value |
---|---|---|
dynamicTagsJson | Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. | string |
isPushEnabled | Gets or sets a flag indicating whether the Push endpoint is enabled. | bool (required) |
tagsRequiringAuth | Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint. Tags can consist of alphanumeric characters and the following: '_', '@', '#', '.', ':', '-'. Validation should be performed at the PushRequestHandler. |
string |
tagWhitelistJson | Gets or sets a JSON string containing a list of tags that are in the allowed list for use by the push registration endpoint. | string |
RampUpRule
Name | Description | Value |
---|---|---|
actionHostName | Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. | string |
changeDecisionCallbackUrl | Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts. https://www.siteextensions.net/packages/TiPCallback/ |
string |
changeIntervalInMinutes | Specifies interval in minutes to reevaluate ReroutePercentage. | int |
changeStep | In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches \n<code>MinReroutePercentage</code> or <code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in <code>ChangeIntervalInMinutes</code>.\nCustom decision algorithm can be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>. |
int |
maxReroutePercentage | Specifies upper boundary below which ReroutePercentage will stay. | int |
minReroutePercentage | Specifies lower boundary above which ReroutePercentage will stay. | int |
name | Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. | string |
reroutePercentage | Percentage of the traffic which will be redirected to <code>ActionHostName</code>. | int |
RequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
ResourceTags
Name | Description | Value |
---|
SiteConfig
Name | Description | Value |
---|---|---|
acrUseManagedIdentityCreds | Flag to use Managed Identity Creds for ACR pull | bool |
acrUserManagedIdentityID | If using user managed identity, the user managed identity ClientId | string |
alwaysOn | <code>true</code> if Always On is enabled; otherwise, <code>false</code>. | bool |
apiDefinition | Information about the formal API definition for the app. | ApiDefinitionInfo |
apiManagementConfig | Azure API management settings linked to the app. | ApiManagementConfig |
appCommandLine | App command line to launch. | string |
appSettings | Application settings. | NameValuePair[] |
autoHealEnabled | <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>. | bool |
autoHealRules | Auto Heal rules. | AutoHealRules |
autoSwapSlotName | Auto-swap slot name. | string |
connectionStrings | Connection strings. | ConnStringInfo[] |
cors | Cross-Origin Resource Sharing (CORS) settings. | CorsSettings |
defaultDocuments | Default documents. | string[] |
detailedErrorLoggingEnabled | <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>. | bool |
documentRoot | Document root. | string |
experiments | This is work around for polymorphic types. | Experiments |
ftpsState | State of FTP / FTPS service | 'AllAllowed' 'Disabled' 'FtpsOnly' |
handlerMappings | Handler mappings. | HandlerMapping[] |
healthCheckPath | Health check path | string |
http20Enabled | Http20Enabled: configures a web site to allow clients to connect over http2.0 | bool |
httpLoggingEnabled | <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>. | bool |
ipSecurityRestrictions | IP security restrictions for main. | IpSecurityRestriction[] |
javaContainer | Java container. | string |
javaContainerVersion | Java container version. | string |
javaVersion | Java version. | string |
limits | Site limits. | SiteLimits |
linuxFxVersion | Linux App Framework and version | string |
loadBalancing | Site load balancing. | 'LeastRequests' 'LeastResponseTime' 'RequestHash' 'WeightedRoundRobin' 'WeightedTotalTraffic' |
localMySqlEnabled | <code>true</code> to enable local MySQL; otherwise, <code>false</code>. | bool |
logsDirectorySizeLimit | HTTP logs directory size limit. | int |
managedPipelineMode | Managed pipeline mode. | 'Classic' 'Integrated' |
managedServiceIdentityId | Managed Service Identity Id | int |
minTlsVersion | MinTlsVersion: configures the minimum version of TLS required for SSL requests | '1.0' '1.1' '1.2' |
netFrameworkVersion | .NET Framework version. | string |
nodeVersion | Version of Node.js. | string |
numberOfWorkers | Number of workers. | int |
phpVersion | Version of PHP. | string |
powerShellVersion | Version of PowerShell. | string |
preWarmedInstanceCount | Number of preWarmed instances. This setting only applies to the Consumption and Elastic Plans |
int Constraints: Min value = 0 Max value = 10 |
publishingUsername | Publishing user name. | string |
push | Push endpoint settings. | PushSettings |
pythonVersion | Version of Python. | string |
remoteDebuggingEnabled | <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>. | bool |
remoteDebuggingVersion | Remote debugging version. | string |
requestTracingEnabled | <code>true</code> if request tracing is enabled; otherwise, <code>false</code>. | bool |
requestTracingExpirationTime | Request tracing expiration time. | string |
scmIpSecurityRestrictions | IP security restrictions for scm. | IpSecurityRestriction[] |
scmIpSecurityRestrictionsUseMain | IP security restrictions for scm to use main. | bool |
scmMinTlsVersion | ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site | '1.0' '1.1' '1.2' |
scmType | SCM type. | 'BitbucketGit' 'BitbucketHg' 'CodePlexGit' 'CodePlexHg' 'Dropbox' 'ExternalGit' 'ExternalHg' 'GitHub' 'LocalGit' 'None' 'OneDrive' 'Tfs' 'VSO' 'VSTSRM' |
tracingOptions | Tracing options. | string |
use32BitWorkerProcess | <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>. | bool |
virtualApplications | Virtual applications. | VirtualApplication[] |
vnetName | Virtual Network name. | string |
vnetPrivatePortsCount | The number of private ports assigned to this app. These will be assigned dynamically on runtime. | int |
vnetRouteAllEnabled | Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. | bool |
webSocketsEnabled | <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>. | bool |
windowsFxVersion | Xenon App Framework and version | string |
xManagedServiceIdentityId | Explicit Managed Service Identity Id | int |
SiteLimits
Name | Description | Value |
---|---|---|
maxDiskSizeInMb | Maximum allowed disk size usage in MB. | int |
maxMemoryInMb | Maximum allowed memory usage in MB. | int |
maxPercentageCpu | Maximum allowed CPU usage percentage. | int |
SiteProperties
Name | Description | Value |
---|---|---|
clientAffinityEnabled | <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>. | bool |
clientCertEnabled | <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>. | bool |
clientCertExclusionPaths | client certificate authentication comma-separated exclusion paths | string |
clientCertMode | This composes with ClientCertEnabled setting. - ClientCertEnabled: false means ClientCert is ignored. - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required. - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted. |
'Optional' 'Required' |
cloningInfo | If specified during app creation, the app is cloned from a source app. | CloningInfo |
containerSize | Size of the function container. | int |
customDomainVerificationId | Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. | string |
dailyMemoryTimeQuota | Maximum allowed daily memory-time quota (applicable on dynamic apps only). | int |
enabled | <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline). | bool |
hostingEnvironmentProfile | App Service Environment to use for the app. | HostingEnvironmentProfile |
hostNamesDisabled | <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>. If <code>true</code>, the app is only accessible via API management process. |
bool |
hostNameSslStates | Hostname SSL states are used to manage the SSL bindings for app's hostnames. | HostNameSslState[] |
httpsOnly | HttpsOnly: configures a web site to accept only https requests. Issues redirect for http requests |
bool |
hyperV | Hyper-V sandbox. | bool |
isXenon | Obsolete: Hyper-V sandbox. | bool |
redundancyMode | Site redundancy mode | 'ActiveActive' 'Failover' 'GeoRedundant' 'Manual' 'None' |
reserved | <code>true</code> if reserved; otherwise, <code>false</code>. | bool |
scmSiteAlsoStopped | <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>. | bool |
serverFarmId | Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". | string |
siteConfig | Configuration of the app. | SiteConfig |
storageAccountRequired | Checks if Customer provided storage account is required | bool |
SlowRequestsBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
timeInterval | Time interval. | string |
timeTaken | Time taken. | string |
StatusCodesBasedTrigger
Name | Description | Value |
---|---|---|
count | Request Count. | int |
status | HTTP status code. | int |
subStatus | Request Sub Status. | int |
timeInterval | Time interval. | string |
win32Status | Win32 error code. | int |
VirtualApplication
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
preloadEnabled | <code>true</code> if preloading is enabled; otherwise, <code>false</code>. | bool |
virtualDirectories | Virtual directories for virtual application. | VirtualDirectory[] |
virtualPath | Virtual path. | string |
VirtualDirectory
Name | Description | Value |
---|---|---|
physicalPath | Physical path. | string |
virtualPath | Path to virtual application. | string |