Microsoft.Web sites/slots 2018-02-01
The sites/slots resource type can be deployed to: Resource groups.
To learn about resource group deployments, see Bicep or ARM template.
Template format
To create a Microsoft.Web/sites/slots resource, add the following Bicep or JSON to your template.
resource symbolicname 'Microsoft.Web/sites/slots@2018-02-01' = {
name: 'string'
location: 'string'
tags: {
tagName1: 'tagValue1'
tagName2: 'tagValue2'
}
kind: 'string'
parent: resourceSymbolicName
identity: {
type: 'string'
userAssignedIdentities: {}
}
properties: {
clientAffinityEnabled: bool
clientCertEnabled: bool
clientCertExclusionPaths: 'string'
cloningInfo: {
appSettingsOverrides: {}
cloneCustomHostNames: bool
cloneSourceControl: bool
configureLoadBalancing: bool
correlationId: 'string'
hostingEnvironment: 'string'
overwrite: bool
sourceWebAppId: 'string'
sourceWebAppLocation: 'string'
trafficManagerProfileId: 'string'
trafficManagerProfileName: 'string'
}
containerSize: int
dailyMemoryTimeQuota: int
enabled: bool
geoDistributions: [
{
location: 'string'
numberOfWorkers: int
}
]
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: {
alwaysOn: bool
apiDefinition: {
url: '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'
azureStorageAccounts: {}
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'
}
]
http20Enabled: bool
httpLoggingEnabled: bool
ipSecurityRestrictions: [
{
action: 'string'
description: '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'
publishingUsername: 'string'
push: {
kind: 'string'
properties: {
dynamicTagsJson: 'string'
isPushEnabled: bool
tagsRequiringAuth: 'string'
tagWhitelistJson: 'string'
}
}
pythonVersion: 'string'
remoteDebuggingEnabled: bool
remoteDebuggingVersion: 'string'
requestTracingEnabled: bool
requestTracingExpirationTime: 'string'
reservedInstanceCount: int
scmIpSecurityRestrictions: [
{
action: 'string'
description: 'string'
ipAddress: 'string'
name: 'string'
priority: int
subnetMask: 'string'
subnetTrafficTag: int
tag: 'string'
vnetSubnetResourceId: 'string'
vnetTrafficTag: int
}
]
scmIpSecurityRestrictionsUseMain: bool
scmType: 'string'
tracingOptions: 'string'
use32BitWorkerProcess: bool
virtualApplications: [
{
physicalPath: 'string'
preloadEnabled: bool
virtualDirectories: [
{
physicalPath: 'string'
virtualPath: 'string'
}
]
virtualPath: 'string'
}
]
vnetName: 'string'
webSocketsEnabled: bool
windowsFxVersion: 'string'
xManagedServiceIdentityId: int
}
}
}
Property values
sites/slots
| Name | Description | Value |
|---|---|---|
| type | The resource type For Bicep, set this value in the resource declaration. |
'Microsoft.Web/sites/slots' |
| apiVersion | The resource api version For Bicep, set this value in the resource declaration. |
'2018-02-01' |
| name | The resource name See how to set names and types for child resources in Bicep or JSON ARM templates. |
string (required) Character limit: 2-59 Valid characters: Alphanumerics and hyphens. |
| location | Resource Location. | string (required) |
| tags | Resource tags. | Dictionary of tag names and values. See Tags in templates |
| kind | Kind of resource. | string |
| parent | In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource. For more information, see Child resource outside parent resource. |
Symbolic name for resource of type: sites |
| identity | Managed service identity. | ManagedServiceIdentity |
| properties | Site resource specific properties | SiteProperties |
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} | object |
SiteProperties
| Name | Description | Value |
|---|---|---|
| clientAffinityEnabled | true to enable client affinity; false to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is true. |
bool |
| clientCertEnabled | true to enable client certificate authentication (TLS mutual authentication); otherwise, false. Default is false. |
bool |
| clientCertExclusionPaths | client certificate authentication comma-separated exclusion paths | string |
| cloningInfo | Information needed for cloning operation. | CloningInfo |
| containerSize | Size of the function container. | int |
| dailyMemoryTimeQuota | Maximum allowed daily memory-time quota (applicable on dynamic apps only). | int |
| enabled | true if the app is enabled; otherwise, false. Setting this value to false disables the app (takes the app offline). |
bool |
| geoDistributions | GeoDistributions for this site | GeoDistribution[] |
| hostingEnvironmentProfile | Specification for an App Service Environment to use for this resource. | HostingEnvironmentProfile |
| hostNamesDisabled | true to disable the public hostnames of the app; otherwise, false.If true, 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 | true if reserved; otherwise, false. |
bool |
| scmSiteAlsoStopped | true to stop SCM (KUDU) site when the app is stopped; otherwise, false. The default is false. |
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 an App Service app. | SiteConfig |
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. |
object |
| cloneCustomHostNames | true to clone custom hostnames from source app; otherwise, false. |
bool |
| cloneSourceControl | true to clone source control from source app; otherwise, false. |
bool |
| configureLoadBalancing | true 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 |
| hostingEnvironment | App Service Environment. | string |
| overwrite | true to overwrite destination app; otherwise, false. |
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 |
GeoDistribution
| Name | Description | Value |
|---|---|---|
| location | Location. | string |
| numberOfWorkers | NumberOfWorkers. | int |
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 true to update existing hostname. |
bool |
| virtualIP | Virtual IP address assigned to the hostname if IP based SSL is enabled. | string |
SiteConfig
| Name | Description | Value |
|---|---|---|
| alwaysOn | true if Always On is enabled; otherwise, false. |
bool |
| apiDefinition | Information about the formal API definition for the app. | ApiDefinitionInfo |
| appCommandLine | App command line to launch. | string |
| appSettings | Application settings. | NameValuePair[] |
| autoHealEnabled | true if Auto Heal is enabled; otherwise, false. |
bool |
| autoHealRules | Rules that can be defined for auto-heal. | AutoHealRules |
| autoSwapSlotName | Auto-swap slot name. | string |
| azureStorageAccounts | User-provided Azure storage accounts. | object |
| connectionStrings | Connection strings. | ConnStringInfo[] |
| cors | Cross-Origin Resource Sharing (CORS) settings for the app. | CorsSettings |
| defaultDocuments | Default documents. | string[] |
| detailedErrorLoggingEnabled | true if detailed error logging is enabled; otherwise, false. |
bool |
| documentRoot | Document root. | string |
| experiments | Routing rules in production experiments. | Experiments |
| ftpsState | State of FTP / FTPS service | 'AllAllowed' 'Disabled' 'FtpsOnly' |
| handlerMappings | Handler mappings. | HandlerMapping[] |
| http20Enabled | Http20Enabled: configures a web site to allow clients to connect over http2.0 | bool |
| httpLoggingEnabled | true if HTTP logging is enabled; otherwise, false. |
bool |
| ipSecurityRestrictions | IP security restrictions for main. | IpSecurityRestriction[] |
| javaContainer | Java container. | string |
| javaContainerVersion | Java container version. | string |
| javaVersion | Java version. | string |
| limits | Metric limits set on an app. | SiteLimits |
| linuxFxVersion | Linux App Framework and version | string |
| loadBalancing | Site load balancing. | 'LeastRequests' 'LeastResponseTime' 'RequestHash' 'WeightedRoundRobin' 'WeightedTotalTraffic' |
| localMySqlEnabled | true to enable local MySQL; otherwise, false. |
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 |
| publishingUsername | Publishing user name. | string |
| push | Push settings for the App. | PushSettings |
| pythonVersion | Version of Python. | string |
| remoteDebuggingEnabled | true if remote debugging is enabled; otherwise, false. |
bool |
| remoteDebuggingVersion | Remote debugging version. | string |
| requestTracingEnabled | true if request tracing is enabled; otherwise, false. |
bool |
| requestTracingExpirationTime | Request tracing expiration time. | string |
| reservedInstanceCount | Number of reserved instances. This setting only applies to the Consumption Plan |
int |
| scmIpSecurityRestrictions | IP security restrictions for scm. | IpSecurityRestriction[] |
| scmIpSecurityRestrictionsUseMain | IP security restrictions for scm to use main. | bool |
| scmType | SCM type. | 'BitbucketGit' 'BitbucketHg' 'CodePlexGit' 'CodePlexHg' 'Dropbox' 'ExternalGit' 'ExternalHg' 'GitHub' 'LocalGit' 'None' 'OneDrive' 'Tfs' 'VSO' |
| tracingOptions | Tracing options. | string |
| use32BitWorkerProcess | true to use 32-bit worker process; otherwise, false. |
bool |
| virtualApplications | Virtual applications. | VirtualApplication[] |
| vnetName | Virtual Network name. | string |
| webSocketsEnabled | true if WebSocket is enabled; otherwise, false. |
bool |
| windowsFxVersion | Xenon App Framework and version | string |
| xManagedServiceIdentityId | Explicit Managed Service Identity Id | int |
ApiDefinitionInfo
| Name | Description | Value |
|---|---|---|
| url | The URL of the API definition. | string |
NameValuePair
| Name | Description | Value |
|---|---|---|
| name | Pair name. | string |
| value | Pair value. | string |
AutoHealRules
| Name | Description | Value |
|---|---|---|
| actions | Actions which to take by the auto-heal module when a rule is triggered. | AutoHealActions |
| triggers | Triggers for auto-heal. | AutoHealTriggers |
AutoHealActions
| Name | Description | Value |
|---|---|---|
| actionType | Predefined action to be taken. | 'CustomAction' 'LogEvent' 'Recycle' |
| customAction | Custom action to be executed when an auto heal rule is triggered. |
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 |
AutoHealTriggers
| Name | Description | Value |
|---|---|---|
| privateBytesInKB | A rule based on private bytes. | int |
| requests | Trigger based on total requests. | RequestsBasedTrigger |
| slowRequests | Trigger based on request execution time. | SlowRequestsBasedTrigger |
| statusCodes | A rule based on status codes. | StatusCodesBasedTrigger[] |
RequestsBasedTrigger
| Name | Description | Value |
|---|---|---|
| count | Request Count. | int |
| timeInterval | Time interval. | string |
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 |
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' 'SQLAzure' 'SQLServer' 'ServiceBus' |
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[] |
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 ReroutePercentage until it reaches MinReroutePercentage or MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl. |
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 ActionHostName. |
int |
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 |
IpSecurityRestriction
| Name | Description | Value |
|---|---|---|
| action | Allow or Deny access for this IP range. | string |
| description | IP restriction rule description. | string |
| 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' 'XffProxy' |
| vnetSubnetResourceId | Virtual network resource id | string |
| vnetTrafficTag | (internal) Vnet traffic tag | 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 |
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 allowed for use by the push registration endpoint. | string |
VirtualApplication
| Name | Description | Value |
|---|---|---|
| physicalPath | Physical path. | string |
| preloadEnabled | true if preloading is enabled; otherwise, false. |
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 |
|---|---|
| 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. |
| 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. |