Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
- Latest
- 2024-05-01-preview
- 2024-01-01-preview
- 2023-12-01
- 2023-11-01-preview
- 2023-09-01-preview
- 2023-07-01-preview
- 2023-05-01-preview
- 2023-03-01-preview
- 2023-01-01-preview
- 2022-12-01
- 2022-11-01-preview
- 2022-09-01-preview
- 2022-05-01-preview
- 2022-04-01
- 2022-03-01-preview
- 2022-01-01-preview
- 2021-09-01-preview
- 2021-06-01-preview
- 2020-11-01-preview
- 2020-07-01
Remarks
Note: Azure Spring Apps Applications (Microsoft.AppPlatform/Spring/apps) is now deprecated and will be retired on 2028-05-31. See https://aka.ms/asaretirement for more information.
Bicep resource definition
The Spring/apps resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.AppPlatform/Spring/apps resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.AppPlatform/Spring/apps@2024-05-01-preview' = {
parent: resourceSymbolicName
identity: {
principalId: 'string'
tenantId: 'string'
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
addonConfigs: {
{customized property}: any(...)
}
customPersistentDisks: [
{
customPersistentDiskProperties: {
enableSubPath: bool
mountOptions: [
'string'
]
mountPath: 'string'
readOnly: bool
type: 'string'
// For remaining properties, see CustomPersistentDiskProperties objects
}
storageId: 'string'
}
]
enableEndToEndTLS: bool
httpsOnly: bool
ingressSettings: {
backendProtocol: 'string'
clientAuth: {
certificates: [
'string'
]
}
readTimeoutInSeconds: int
sendTimeoutInSeconds: int
sessionAffinity: 'string'
sessionCookieMaxAge: int
}
loadedCertificates: [
{
loadTrustStore: bool
resourceId: 'string'
}
]
persistentDisk: {
mountPath: 'string'
sizeInGB: int
}
public: bool
secrets: [
{
name: 'string'
value: 'string'
}
]
temporaryDisk: {
mountPath: 'string'
sizeInGB: int
}
testEndpointAuthState: 'string'
vnetAddons: {
publicEndpoint: bool
}
workloadProfileName: 'string'
}
}
CustomPersistentDiskProperties objects
Set the type property to specify the type of object.
For AzureFileVolume, use:
{
shareName: 'string'
type: 'AzureFileVolume'
}
Property Values
Microsoft.AppPlatform/Spring/apps
| Name | Description | Value |
|---|---|---|
| identity | The Managed Identity type of the app resource | ManagedIdentityProperties |
| location | The GEO location of the application, always the same with its parent resource | string |
| name | The resource name | string (required) |
| 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: Spring |
| properties | Properties of the App resource | AppResourceProperties |
AppResourceProperties
| Name | Description | Value |
|---|---|---|
| addonConfigs | Collection of addons | AppResourcePropertiesAddonConfigs |
| customPersistentDisks | List of custom persistent disks | CustomPersistentDiskResource[] |
| enableEndToEndTLS | Indicate if end to end TLS is enabled. | bool |
| httpsOnly | Indicate if only https is allowed. | bool |
| ingressSettings | App ingress settings payload. | IngressSettings |
| loadedCertificates | Collection of loaded certificates | LoadedCertificate[] |
| persistentDisk | Persistent disk settings | PersistentDisk |
| public | Indicates whether the App exposes public endpoint | bool |
| secrets | Collection of auth secrets | Secret[] |
| temporaryDisk | Temporary disk settings | TemporaryDisk |
| testEndpointAuthState | State of test endpoint auth. | 'Disabled' 'Enabled' |
| vnetAddons | Additional App settings in vnet injection instance | AppVNetAddons |
| workloadProfileName | The workload profile used for this app. Supported for Consumption + Dedicated plan. | string |
AppResourcePropertiesAddonConfigs
| Name | Description | Value |
|---|
AppVNetAddons
| Name | Description | Value |
|---|---|---|
| publicEndpoint | Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. | bool |
AzureFileVolume
| Name | Description | Value |
|---|---|---|
| shareName | The share name of the Azure File share. | string |
| type | The type of the underlying resource to mount as a persistent disk. | 'AzureFileVolume' (required) |
CustomPersistentDiskProperties
| Name | Description | Value |
|---|---|---|
| enableSubPath | If set to true, it will create and mount a dedicated directory for every individual app instance. | bool |
| mountOptions | These are the mount options for a persistent disk. | string[] |
| mountPath | The mount path of the persistent disk. | string (required) |
| readOnly | Indicates whether the persistent disk is a readOnly one. | bool |
| type | Set to 'AzureFileVolume' for type AzureFileVolume. | 'AzureFileVolume' (required) |
CustomPersistentDiskResource
| Name | Description | Value |
|---|---|---|
| customPersistentDiskProperties | Properties of the custom persistent disk resource payload. | CustomPersistentDiskProperties |
| storageId | The resource id of Azure Spring Apps Storage resource. | string (required) |
IngressSettings
| Name | Description | Value |
|---|---|---|
| backendProtocol | How ingress should communicate with this app backend service. | 'Default' 'GRPC' |
| clientAuth | Client-Certification Authentication. | IngressSettingsClientAuth |
| readTimeoutInSeconds | Ingress read time out in seconds. | int |
| sendTimeoutInSeconds | Ingress send time out in seconds. | int |
| sessionAffinity | Type of the affinity, set this to Cookie to enable session affinity. | 'Cookie' 'None' |
| sessionCookieMaxAge | Time in seconds until the cookie expires. | int |
IngressSettingsClientAuth
| Name | Description | Value |
|---|---|---|
| certificates | Collection of certificate resource id. | string[] |
LoadedCertificate
| Name | Description | Value |
|---|---|---|
| loadTrustStore | Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. | bool |
| resourceId | Resource Id of loaded certificate | string (required) |
ManagedIdentityProperties
| Name | Description | Value |
|---|---|---|
| principalId | Principal Id of system-assigned managed identity. | string |
| tenantId | Tenant Id of system-assigned managed identity. | string |
| type | Type of the managed identity | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' |
| userAssignedIdentities | Properties of user-assigned managed identities | UserAssignedManagedIdentities |
PersistentDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the persistent disk | string |
| sizeInGB | Size of the persistent disk in GB | int Constraints: Min value = 0 Max value = 50 |
Secret
| Name | Description | Value |
|---|---|---|
| name | Secret Name. | string |
| value | Secret Value. | string Constraints: Sensitive value. Pass in as a secure parameter. |
TemporaryDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the temporary disk | string |
| sizeInGB | Size of the temporary disk in GB | int Constraints: Min value = 0 Max value = 5 |
UserAssignedManagedIdentities
| Name | Description | Value |
|---|
UserAssignedManagedIdentity
| Name | Description | Value |
|---|
Usage Examples
Azure Quickstart Samples
The following Azure Quickstart templates contain Bicep samples for deploying this resource type.
| Bicep File | Description |
|---|---|
| Deploy a simple Azure Spring Apps microservice application | This template deploys a simple Azure Spring Apps microservice application to run on Azure. |
ARM template resource definition
The Spring/apps resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.AppPlatform/Spring/apps resource, add the following JSON to your template.
{
"type": "Microsoft.AppPlatform/Spring/apps",
"apiVersion": "2024-05-01-preview",
"name": "string",
"identity": {
"principalId": "string",
"tenantId": "string",
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"addonConfigs": {
"{customized property}": {}
},
"customPersistentDisks": [
{
"customPersistentDiskProperties": {
"enableSubPath": "bool",
"mountOptions": [ "string" ],
"mountPath": "string",
"readOnly": "bool",
"type": "string"
// For remaining properties, see CustomPersistentDiskProperties objects
},
"storageId": "string"
}
],
"enableEndToEndTLS": "bool",
"httpsOnly": "bool",
"ingressSettings": {
"backendProtocol": "string",
"clientAuth": {
"certificates": [ "string" ]
},
"readTimeoutInSeconds": "int",
"sendTimeoutInSeconds": "int",
"sessionAffinity": "string",
"sessionCookieMaxAge": "int"
},
"loadedCertificates": [
{
"loadTrustStore": "bool",
"resourceId": "string"
}
],
"persistentDisk": {
"mountPath": "string",
"sizeInGB": "int"
},
"public": "bool",
"secrets": [
{
"name": "string",
"value": "string"
}
],
"temporaryDisk": {
"mountPath": "string",
"sizeInGB": "int"
},
"testEndpointAuthState": "string",
"vnetAddons": {
"publicEndpoint": "bool"
},
"workloadProfileName": "string"
}
}
CustomPersistentDiskProperties objects
Set the type property to specify the type of object.
For AzureFileVolume, use:
{
"shareName": "string",
"type": "AzureFileVolume"
}
Property Values
Microsoft.AppPlatform/Spring/apps
| Name | Description | Value |
|---|---|---|
| apiVersion | The api version | '2024-05-01-preview' |
| identity | The Managed Identity type of the app resource | ManagedIdentityProperties |
| location | The GEO location of the application, always the same with its parent resource | string |
| name | The resource name | string (required) |
| properties | Properties of the App resource | AppResourceProperties |
| type | The resource type | 'Microsoft.AppPlatform/Spring/apps' |
AppResourceProperties
| Name | Description | Value |
|---|---|---|
| addonConfigs | Collection of addons | AppResourcePropertiesAddonConfigs |
| customPersistentDisks | List of custom persistent disks | CustomPersistentDiskResource[] |
| enableEndToEndTLS | Indicate if end to end TLS is enabled. | bool |
| httpsOnly | Indicate if only https is allowed. | bool |
| ingressSettings | App ingress settings payload. | IngressSettings |
| loadedCertificates | Collection of loaded certificates | LoadedCertificate[] |
| persistentDisk | Persistent disk settings | PersistentDisk |
| public | Indicates whether the App exposes public endpoint | bool |
| secrets | Collection of auth secrets | Secret[] |
| temporaryDisk | Temporary disk settings | TemporaryDisk |
| testEndpointAuthState | State of test endpoint auth. | 'Disabled' 'Enabled' |
| vnetAddons | Additional App settings in vnet injection instance | AppVNetAddons |
| workloadProfileName | The workload profile used for this app. Supported for Consumption + Dedicated plan. | string |
AppResourcePropertiesAddonConfigs
| Name | Description | Value |
|---|
AppVNetAddons
| Name | Description | Value |
|---|---|---|
| publicEndpoint | Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. | bool |
AzureFileVolume
| Name | Description | Value |
|---|---|---|
| shareName | The share name of the Azure File share. | string |
| type | The type of the underlying resource to mount as a persistent disk. | 'AzureFileVolume' (required) |
CustomPersistentDiskProperties
| Name | Description | Value |
|---|---|---|
| enableSubPath | If set to true, it will create and mount a dedicated directory for every individual app instance. | bool |
| mountOptions | These are the mount options for a persistent disk. | string[] |
| mountPath | The mount path of the persistent disk. | string (required) |
| readOnly | Indicates whether the persistent disk is a readOnly one. | bool |
| type | Set to 'AzureFileVolume' for type AzureFileVolume. | 'AzureFileVolume' (required) |
CustomPersistentDiskResource
| Name | Description | Value |
|---|---|---|
| customPersistentDiskProperties | Properties of the custom persistent disk resource payload. | CustomPersistentDiskProperties |
| storageId | The resource id of Azure Spring Apps Storage resource. | string (required) |
IngressSettings
| Name | Description | Value |
|---|---|---|
| backendProtocol | How ingress should communicate with this app backend service. | 'Default' 'GRPC' |
| clientAuth | Client-Certification Authentication. | IngressSettingsClientAuth |
| readTimeoutInSeconds | Ingress read time out in seconds. | int |
| sendTimeoutInSeconds | Ingress send time out in seconds. | int |
| sessionAffinity | Type of the affinity, set this to Cookie to enable session affinity. | 'Cookie' 'None' |
| sessionCookieMaxAge | Time in seconds until the cookie expires. | int |
IngressSettingsClientAuth
| Name | Description | Value |
|---|---|---|
| certificates | Collection of certificate resource id. | string[] |
LoadedCertificate
| Name | Description | Value |
|---|---|---|
| loadTrustStore | Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. | bool |
| resourceId | Resource Id of loaded certificate | string (required) |
ManagedIdentityProperties
| Name | Description | Value |
|---|---|---|
| principalId | Principal Id of system-assigned managed identity. | string |
| tenantId | Tenant Id of system-assigned managed identity. | string |
| type | Type of the managed identity | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' |
| userAssignedIdentities | Properties of user-assigned managed identities | UserAssignedManagedIdentities |
PersistentDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the persistent disk | string |
| sizeInGB | Size of the persistent disk in GB | int Constraints: Min value = 0 Max value = 50 |
Secret
| Name | Description | Value |
|---|---|---|
| name | Secret Name. | string |
| value | Secret Value. | string Constraints: Sensitive value. Pass in as a secure parameter. |
TemporaryDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the temporary disk | string |
| sizeInGB | Size of the temporary disk in GB | int Constraints: Min value = 0 Max value = 5 |
UserAssignedManagedIdentities
| Name | Description | Value |
|---|
UserAssignedManagedIdentity
| Name | Description | Value |
|---|
Usage Examples
Azure Quickstart Templates
The following Azure Quickstart templates deploy this resource type.
| Template | Description |
|---|---|
| Deploy a simple Azure Spring Apps microservice application |
This template deploys a simple Azure Spring Apps microservice application to run on Azure. |
Terraform (AzAPI provider) resource definition
The Spring/apps resource type can be deployed with operations that target:
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.AppPlatform/Spring/apps resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.AppPlatform/Spring/apps@2024-05-01-preview"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
body = {
properties = {
addonConfigs = {
{customized property} = ?
}
customPersistentDisks = [
{
customPersistentDiskProperties = {
enableSubPath = bool
mountOptions = [
"string"
]
mountPath = "string"
readOnly = bool
type = "string"
// For remaining properties, see CustomPersistentDiskProperties objects
}
storageId = "string"
}
]
enableEndToEndTLS = bool
httpsOnly = bool
ingressSettings = {
backendProtocol = "string"
clientAuth = {
certificates = [
"string"
]
}
readTimeoutInSeconds = int
sendTimeoutInSeconds = int
sessionAffinity = "string"
sessionCookieMaxAge = int
}
loadedCertificates = [
{
loadTrustStore = bool
resourceId = "string"
}
]
persistentDisk = {
mountPath = "string"
sizeInGB = int
}
public = bool
secrets = [
{
name = "string"
value = "string"
}
]
temporaryDisk = {
mountPath = "string"
sizeInGB = int
}
testEndpointAuthState = "string"
vnetAddons = {
publicEndpoint = bool
}
workloadProfileName = "string"
}
}
}
CustomPersistentDiskProperties objects
Set the type property to specify the type of object.
For AzureFileVolume, use:
{
shareName = "string"
type = "AzureFileVolume"
}
Property Values
Microsoft.AppPlatform/Spring/apps
| Name | Description | Value |
|---|---|---|
| identity | The Managed Identity type of the app resource | ManagedIdentityProperties |
| location | The GEO location of the application, always the same with its parent resource | string |
| name | The resource name | string (required) |
| parent_id | The ID of the resource that is the parent for this resource. | ID for resource of type: Spring |
| properties | Properties of the App resource | AppResourceProperties |
| type | The resource type | "Microsoft.AppPlatform/Spring/apps@2024-05-01-preview" |
AppResourceProperties
| Name | Description | Value |
|---|---|---|
| addonConfigs | Collection of addons | AppResourcePropertiesAddonConfigs |
| customPersistentDisks | List of custom persistent disks | CustomPersistentDiskResource[] |
| enableEndToEndTLS | Indicate if end to end TLS is enabled. | bool |
| httpsOnly | Indicate if only https is allowed. | bool |
| ingressSettings | App ingress settings payload. | IngressSettings |
| loadedCertificates | Collection of loaded certificates | LoadedCertificate[] |
| persistentDisk | Persistent disk settings | PersistentDisk |
| public | Indicates whether the App exposes public endpoint | bool |
| secrets | Collection of auth secrets | Secret[] |
| temporaryDisk | Temporary disk settings | TemporaryDisk |
| testEndpointAuthState | State of test endpoint auth. | 'Disabled' 'Enabled' |
| vnetAddons | Additional App settings in vnet injection instance | AppVNetAddons |
| workloadProfileName | The workload profile used for this app. Supported for Consumption + Dedicated plan. | string |
AppResourcePropertiesAddonConfigs
| Name | Description | Value |
|---|
AppVNetAddons
| Name | Description | Value |
|---|---|---|
| publicEndpoint | Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. | bool |
AzureFileVolume
| Name | Description | Value |
|---|---|---|
| shareName | The share name of the Azure File share. | string |
| type | The type of the underlying resource to mount as a persistent disk. | 'AzureFileVolume' (required) |
CustomPersistentDiskProperties
| Name | Description | Value |
|---|---|---|
| enableSubPath | If set to true, it will create and mount a dedicated directory for every individual app instance. | bool |
| mountOptions | These are the mount options for a persistent disk. | string[] |
| mountPath | The mount path of the persistent disk. | string (required) |
| readOnly | Indicates whether the persistent disk is a readOnly one. | bool |
| type | Set to 'AzureFileVolume' for type AzureFileVolume. | 'AzureFileVolume' (required) |
CustomPersistentDiskResource
| Name | Description | Value |
|---|---|---|
| customPersistentDiskProperties | Properties of the custom persistent disk resource payload. | CustomPersistentDiskProperties |
| storageId | The resource id of Azure Spring Apps Storage resource. | string (required) |
IngressSettings
| Name | Description | Value |
|---|---|---|
| backendProtocol | How ingress should communicate with this app backend service. | 'Default' 'GRPC' |
| clientAuth | Client-Certification Authentication. | IngressSettingsClientAuth |
| readTimeoutInSeconds | Ingress read time out in seconds. | int |
| sendTimeoutInSeconds | Ingress send time out in seconds. | int |
| sessionAffinity | Type of the affinity, set this to Cookie to enable session affinity. | 'Cookie' 'None' |
| sessionCookieMaxAge | Time in seconds until the cookie expires. | int |
IngressSettingsClientAuth
| Name | Description | Value |
|---|---|---|
| certificates | Collection of certificate resource id. | string[] |
LoadedCertificate
| Name | Description | Value |
|---|---|---|
| loadTrustStore | Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. | bool |
| resourceId | Resource Id of loaded certificate | string (required) |
ManagedIdentityProperties
| Name | Description | Value |
|---|---|---|
| principalId | Principal Id of system-assigned managed identity. | string |
| tenantId | Tenant Id of system-assigned managed identity. | string |
| type | Type of the managed identity | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' |
| userAssignedIdentities | Properties of user-assigned managed identities | UserAssignedManagedIdentities |
PersistentDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the persistent disk | string |
| sizeInGB | Size of the persistent disk in GB | int Constraints: Min value = 0 Max value = 50 |
Secret
| Name | Description | Value |
|---|---|---|
| name | Secret Name. | string |
| value | Secret Value. | string Constraints: Sensitive value. Pass in as a secure parameter. |
TemporaryDisk
| Name | Description | Value |
|---|---|---|
| mountPath | Mount path of the temporary disk | string |
| sizeInGB | Size of the temporary disk in GB | int Constraints: Min value = 0 Max value = 5 |
UserAssignedManagedIdentities
| Name | Description | Value |
|---|
UserAssignedManagedIdentity
| Name | Description | Value |
|---|
Usage Examples
Terraform Samples
A basic example of deploying an Azure Spring Cloud Application.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "Spring" {
type = "Microsoft.AppPlatform/Spring@2023-05-01-preview"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
zoneRedundant = false
}
sku = {
name = "E0"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "app" {
type = "Microsoft.AppPlatform/Spring/apps@2023-05-01-preview"
parent_id = azapi_resource.Spring.id
name = var.resource_name
location = var.location
body = {
properties = {
customPersistentDisks = [
]
enableEndToEndTLS = false
public = false
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}