Microsoft Azure Functions · JSON Structure

Azure Functions Site Config Structure

Configuration of an App Service app.

Type: object Properties: 73
AzureCloudComputeEvent-DrivenMicrosoftServerless

SiteConfig is a JSON Structure definition published by Microsoft Azure Functions, describing 73 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

numberOfWorkers defaultDocuments netFrameworkVersion phpVersion pythonVersion nodeVersion powerShellVersion linuxFxVersion windowsFxVersion requestTracingEnabled requestTracingExpirationTime remoteDebuggingEnabled remoteDebuggingVersion httpLoggingEnabled acrUseManagedIdentityCreds acrUserManagedIdentityID logsDirectorySizeLimit detailedErrorLoggingEnabled publishingUsername appSettings metadata connectionStrings machineKey handlerMappings documentRoot scmType use32BitWorkerProcess webSocketsEnabled alwaysOn javaVersion javaContainer javaContainerVersion appCommandLine managedPipelineMode virtualApplications loadBalancing experiments limits autoHealEnabled autoHealRules tracingOptions vnetName vnetRouteAllEnabled vnetPrivatePortsCount cors push apiDefinition apiManagementConfig autoSwapSlotName localMySqlEnabled

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/microsoft-azure-functions/refs/heads/main/json-structure/azure-functions-site-config-structure.json",
  "name": "SiteConfig",
  "description": "Configuration of an App Service app.",
  "type": "object",
  "properties": {
    "numberOfWorkers": {
      "type": "integer",
      "format": "int32",
      "description": "Number of workers."
    },
    "defaultDocuments": {
      "type": "array",
      "description": "Default documents.",
      "items": {
        "type": "string"
      }
    },
    "netFrameworkVersion": {
      "type": "string",
      "description": ".NET Framework version.",
      "default": "v4.6"
    },
    "phpVersion": {
      "type": "string",
      "description": "Version of PHP."
    },
    "pythonVersion": {
      "type": "string",
      "description": "Version of Python."
    },
    "nodeVersion": {
      "type": "string",
      "description": "Version of Node.js."
    },
    "powerShellVersion": {
      "type": "string",
      "description": "Version of PowerShell."
    },
    "linuxFxVersion": {
      "type": "string",
      "description": "Linux App Framework and version"
    },
    "windowsFxVersion": {
      "type": "string",
      "description": "Xenon App Framework and version"
    },
    "requestTracingEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if request tracing is enabled; otherwise, <code>false</code>."
    },
    "requestTracingExpirationTime": {
      "type": "datetime",
      "description": "Request tracing expiration time."
    },
    "remoteDebuggingEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if remote debugging is enabled; otherwise, <code>false</code>."
    },
    "remoteDebuggingVersion": {
      "type": "string",
      "description": "Remote debugging version."
    },
    "httpLoggingEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>."
    },
    "acrUseManagedIdentityCreds": {
      "type": "boolean",
      "description": "Flag to use Managed Identity Creds for ACR pull"
    },
    "acrUserManagedIdentityID": {
      "type": "string",
      "description": "If using user managed identity, the user managed identity ClientId"
    },
    "logsDirectorySizeLimit": {
      "type": "integer",
      "format": "int32",
      "description": "HTTP logs directory size limit."
    },
    "detailedErrorLoggingEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>."
    },
    "publishingUsername": {
      "type": "string",
      "description": "Publishing user name."
    },
    "appSettings": {
      "type": "array",
      "description": "Application settings. This property is not returned in response to normal create and read requests since it may contain sensitive information.",
      "items": {
        "$ref": "#/definitions/NameValuePair"
      },
      "x-ms-identifiers": [
        "name"
      ],
      "x-ms-mutability": [
        "update",
        "create"
      ]
    },
    "metadata": {
      "type": "array",
      "description": "Application metadata. This property cannot be retrieved, since it may contain secrets.",
      "items": {
        "$ref": "#/definitions/NameValuePair"
      },
      "x-ms-identifiers": [
        "name"
      ],
      "x-ms-mutability": [
        "update",
        "create"
      ]
    },
    "connectionStrings": {
      "type": "array",
      "description": "Connection strings. This property is not returned in response to normal create and read requests since it may contain sensitive information.",
      "items": {
        "$ref": "#/definitions/ConnStringInfo"
      },
      "x-ms-identifiers": [
        "name"
      ],
      "x-ms-mutability": [
        "update",
        "create"
      ]
    },
    "machineKey": {
      "$ref": "#/definitions/SiteMachineKey",
      "description": "Site MachineKey.",
      "readOnly": true
    },
    "handlerMappings": {
      "type": "array",
      "description": "Handler mappings.",
      "items": {
        "$ref": "#/definitions/HandlerMapping"
      },
      "x-ms-identifiers": [
        "extension"
      ]
    },
    "documentRoot": {
      "type": "string",
      "description": "Document root."
    },
    "scmType": {
      "$ref": "#/definitions/ScmType",
      "description": "SCM type."
    },
    "use32BitWorkerProcess": {
      "type": "boolean",
      "description": "<code>true</code> to use 32-bit worker process; otherwise, <code>false</code>."
    },
    "webSocketsEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if WebSocket is enabled; otherwise, <code>false</code>."
    },
    "alwaysOn": {
      "type": "boolean",
      "description": "<code>true</code> if Always On is enabled; otherwise, <code>false</code>."
    },
    "javaVersion": {
      "type": "string",
      "description": "Java version."
    },
    "javaContainer": {
      "type": "string",
      "description": "Java container."
    },
    "javaContainerVersion": {
      "type": "string",
      "description": "Java container version."
    },
    "appCommandLine": {
      "type": "string",
      "description": "App command line to launch."
    },
    "managedPipelineMode": {
      "$ref": "#/definitions/ManagedPipelineMode",
      "description": "Managed pipeline mode."
    },
    "virtualApplications": {
      "type": "array",
      "description": "Virtual applications.",
      "items": {
        "$ref": "#/definitions/VirtualApplication"
      },
      "x-ms-identifiers": [
        "virtualPath"
      ]
    },
    "loadBalancing": {
      "$ref": "#/definitions/SiteLoadBalancing",
      "description": "Site load balancing."
    },
    "experiments": {
      "$ref": "#/definitions/Experiments",
      "description": "This is work around for polymorphic types."
    },
    "limits": {
      "$ref": "#/definitions/SiteLimits",
      "description": "Site limits."
    },
    "autoHealEnabled": {
      "type": "boolean",
      "description": "<code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>."
    },
    "autoHealRules": {
      "$ref": "#/definitions/AutoHealRules",
      "description": "Auto Heal rules."
    },
    "tracingOptions": {
      "type": "string",
      "description": "Tracing options."
    },
    "vnetName": {
      "type": "string",
      "description": "Virtual Network name.",
      "x-ms-mutability": [
        "read",
        "create"
      ]
    },
    "vnetRouteAllEnabled": {
      "type": "boolean",
      "description": "Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied."
    },
    "vnetPrivatePortsCount": {
      "type": "integer",
      "format": "int32",
      "description": "The number of private ports assigned to this app. These will be assigned dynamically on runtime."
    },
    "cors": {
      "$ref": "#/definitions/CorsSettings",
      "description": "Cross-Origin Resource Sharing (CORS) settings."
    },
    "push": {
      "$ref": "#/definitions/PushSettings",
      "description": "Push endpoint settings."
    },
    "apiDefinition": {
      "$ref": "#/definitions/ApiDefinitionInfo",
      "description": "Information about the formal API definition for the app."
    },
    "apiManagementConfig": {
      "$ref": "#/definitions/ApiManagementConfig",
      "description": "Azure API management settings linked to the app."
    },
    "autoSwapSlotName": {
      "type": "string",
      "description": "Auto-swap slot name."
    },
    "localMySqlEnabled": {
      "type": "boolean",
      "description": "<code>true</code> to enable local MySQL; otherwise, <code>false</code>.",
      "default": false
    },
    "managedServiceIdentityId": {
      "type": "integer",
      "format": "int32",
      "description": "Managed Service Identity Id"
    },
    "xManagedServiceIdentityId": {
      "type": "integer",
      "format": "int32",
      "description": "Explicit Managed Service Identity Id"
    },
    "keyVaultReferenceIdentity": {
      "type": "string",
      "description": "Identity to use for Key Vault Reference authentication."
    },
    "ipSecurityRestrictions": {
      "type": "array",
      "description": "IP security restrictions for main.",
      "items": {
        "$ref": "#/definitions/IpSecurityRestriction"
      },
      "x-ms-identifiers": [
        "name"
      ]
    },
    "ipSecurityRestrictionsDefaultAction": {
      "$ref": "#/definitions/DefaultAction",
      "description": "Default action for main access restriction if no rules are matched."
    },
    "scmIpSecurityRestrictions": {
      "type": "array",
      "description": "IP security restrictions for scm.",
      "items": {
        "$ref": "#/definitions/IpSecurityRestriction"
      },
      "x-ms-identifiers": [
        "name"
      ]
    },
    "scmIpSecurityRestrictionsDefaultAction": {
      "$ref": "#/definitions/DefaultAction",
      "description": "Default action for scm access restriction if no rules are matched."
    },
    "scmIpSecurityRestrictionsUseMain": {
      "type": "boolean",
      "description": "IP security restrictions for scm to use main."
    },
    "http20Enabled": {
      "type": "boolean",
      "description": "Http20Enabled: configures a web site to allow clients to connect over http2.0",
      "default": true
    },
    "http20ProxyFlag": {
      "type": "integer",
      "format": "int32",
      "description": "Http20ProxyFlag: Configures a website to allow http2.0 to pass be proxied all the way to the app. 0 = disabled, 1 = pass through all http2 traffic, 2 = pass through gRPC only.",
      "default": 0
    },
    "minTlsVersion": {
      "$ref": "#/definitions/SupportedTlsVersions",
      "description": "MinTlsVersion: configures the minimum version of TLS required for SSL requests"
    },
    "minTlsCipherSuite": {
      "$ref": "#/definitions/TlsCipherSuites",
      "description": "The minimum strength TLS cipher suite allowed for an application"
    },
    "scmMinTlsVersion": {
      "$ref": "#/definitions/SupportedTlsVersions",
      "description": "ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site"
    },
    "ftpsState": {
      "$ref": "#/definitions/FtpsState",
      "description": "State of FTP / FTPS service"
    },
    "preWarmedInstanceCount": {
      "type": "integer",
      "format": "int32",
      "description": "Number of preWarmed instances.\nThis setting only applies to the Consumption and Elastic Plans",
      "minimum": 0,
      "maximum": 10
    },
    "functionAppScaleLimit": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of workers that a site can scale out to.\nThis setting only applies to the Consumption and Elastic Premium Plans",
      "minimum": 0
    },
    "elasticWebAppScaleLimit": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum number of workers that a site can scale out to.\nThis setting only applies to apps in plans where ElasticScaleEnabled is <code>true</code>",
      "minimum": 0
    },
    "healthCheckPath": {
      "type": "string",
      "description": "Health check path"
    },
    "functionsRuntimeScaleMonitoringEnabled": {
      "type": "boolean",
      "description": "Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,\nthe ScaleController will not monitor event sources directly, but will instead call to the\nruntime to get scale status."
    },
    "websiteTimeZone": {
      "type": "string",
      "description": "Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"
    },
    "minimumElasticInstanceCount": {
      "type": "integer",
      "format": "int32",
      "description": "Number of minimum instance count for a site\nThis setting only applies to the Elastic Plans",
      "minimum": 0,
      "maximum": 20
    },
    "azureStorageAccounts": {
      "type": "object",
      "description": "List of Azure Storage Accounts.",
      "additionalProperties": {
        "$ref": "#/definitions/AzureStorageInfoValue"
      }
    },
    "publicNetworkAccess": {
      "type": "string",
      "description": "Property to allow or block all public traffic."
    }
  }
}