Microsoft.AppPlatform Spring/apps/deployments 2023-11-01-preview

Bicep resource definition

The Spring/apps/deployments 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/deployments resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.AppPlatform/Spring/apps/deployments@2023-11-01-preview' = {
  name: 'string'
  sku: {
    capacity: int
    name: 'string'
    tier: 'string'
  }
  parent: resourceSymbolicName
  properties: {
    active: bool
    deploymentSettings: {
      addonConfigs: {
        {customized property}: any()
      }
      apms: [
        {
          resourceId: 'string'
        }
      ]
      containerProbeSettings: {
        disableProbe: bool
      }
      environmentVariables: {
        {customized property}: 'string'
      }
      livenessProbe: {
        disableProbe: bool
        failureThreshold: int
        initialDelaySeconds: int
        periodSeconds: int
        probeAction: {
          type: 'string'
          // For remaining properties, see ProbeAction objects
        }
        successThreshold: int
        timeoutSeconds: int
      }
      readinessProbe: {
        disableProbe: bool
        failureThreshold: int
        initialDelaySeconds: int
        periodSeconds: int
        probeAction: {
          type: 'string'
          // For remaining properties, see ProbeAction objects
        }
        successThreshold: int
        timeoutSeconds: int
      }
      resourceRequests: {
        cpu: 'string'
        memory: 'string'
      }
      scale: {
        maxReplicas: int
        minReplicas: int
        rules: [
          {
            azureQueue: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              queueLength: int
              queueName: 'string'
            }
            custom: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
              type: 'string'
            }
            http: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
            }
            name: 'string'
            tcp: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              metadata: {
                {customized property}: 'string'
              }
            }
          }
        ]
      }
      startupProbe: {
        disableProbe: bool
        failureThreshold: int
        initialDelaySeconds: int
        periodSeconds: int
        probeAction: {
          type: 'string'
          // For remaining properties, see ProbeAction objects
        }
        successThreshold: int
        timeoutSeconds: int
      }
      terminationGracePeriodSeconds: int
    }
    source: {
      version: 'string'
      type: 'string'
      // For remaining properties, see UserSourceInfo objects
    }
  }
}

ProbeAction objects

Set the type property to specify the type of object.

For ExecAction, use:

  type: 'ExecAction'
  command: [
    'string'
  ]

For HTTPGetAction, use:

  type: 'HTTPGetAction'
  path: 'string'
  scheme: 'string'

For TCPSocketAction, use:

  type: 'TCPSocketAction'

UserSourceInfo objects

Set the type property to specify the type of object.

For BuildResult, use:

  type: 'BuildResult'
  buildResultId: 'string'

For Container, use:

  type: 'Container'
  customContainer: {
    args: [
      'string'
    ]
    command: [
      'string'
    ]
    containerImage: 'string'
    imageRegistryCredential: {
      password: 'string'
      username: 'string'
    }
    languageFramework: 'string'
    server: 'string'
  }

For Jar, use:

  type: 'Jar'
  jvmOptions: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'

For NetCoreZip, use:

  type: 'NetCoreZip'
  netCoreMainEntryPath: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'

For Source, use:

  type: 'Source'
  artifactSelector: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'

For War, use:

  type: 'War'
  jvmOptions: 'string'
  relativePath: 'string'
  runtimeVersion: 'string'
  serverVersion: 'string'

Property values

Spring/apps/deployments

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)
sku Sku of the Deployment resource Sku
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: apps
properties Properties of the Deployment resource DeploymentResourceProperties

DeploymentResourceProperties

Name Description Value
active Indicates whether the Deployment is active bool
deploymentSettings Deployment settings of the Deployment DeploymentSettings
source Uploaded source information of the deployment. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection of addons DeploymentSettingsAddonConfigs
apms Collection of ApmReferences ApmReference[]
containerProbeSettings Container liveness and readiness probe settings ContainerProbeSettings
environmentVariables Collection of environment variables DeploymentSettingsEnvironmentVariables
livenessProbe Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests The requested resource quantity for required CPU and Memory. It is recommended that using this field to represent the required CPU and Memory, the old field cpu and memoryInGB will be deprecated later. ResourceRequests
scale Scaling properties for the Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a App Instance's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. int

DeploymentSettingsAddonConfigs

Name Description Value
{customized property} For Bicep, you can use the any() function.

ApmReference

Name Description Value
resourceId Resource Id of the APM string (required)

ContainerProbeSettings

Name Description Value
disableProbe Indicates whether disable the liveness and readiness probe bool

DeploymentSettingsEnvironmentVariables

Name Description Value
{customized property} string

Probe

Name Description Value
disableProbe Indicate whether the probe is disabled. bool (required)
failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. int
initialDelaySeconds Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds How often (in seconds) to perform the probe. Minimum value is 1. int
probeAction The action of the probe. ProbeAction
successThreshold Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. int
timeoutSeconds Number of seconds after which the probe times out. Minimum value is 1. int

ProbeAction

Name Description Value
type Set the object type ExecAction
HTTPGetAction
TCPSocketAction (required)

ExecAction

Name Description Value
type The type of the action to take to perform the health check. 'ExecAction' (required)
command Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is not run inside a shell, so traditional shell instructions (',', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. string[]

HttpGetAction

Name Description Value
type The type of the action to take to perform the health check. 'HTTPGetAction' (required)
path Path to access on the HTTP server. string
scheme Scheme to use for connecting to the host. Defaults to HTTP.

Possible enum values:
- "HTTP" means that the scheme used will be http://
- "HTTPS" means that the scheme used will be https://
'HTTP'
'HTTPS'

TCPSocketAction

Name Description Value
type The type of the action to take to perform the health check. 'TCPSocketAction' (required)

ResourceRequests

Name Description Value
cpu Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. string
memory Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. string

Scale

Name Description Value
maxReplicas Optional. Maximum number of container replicas. Defaults to 10 if not set. int
minReplicas Optional. Minimum number of container replicas. int
rules Scaling rules. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Azure Queue based scaling. QueueScaleRule
custom Custom scale rule. CustomScaleRule
http HTTP requests based scaling. HttpScaleRule
name Scale Rule Name string
tcp Tcp requests based scaling. TcpScaleRule

QueueScaleRule

Name Description Value
auth Authentication secrets for the queue scale rule. ScaleRuleAuth[]
queueLength Queue length. int
queueName Queue name. string

ScaleRuleAuth

Name Description Value
secretRef Name of the Azure Spring Apps App Instance secret from which to pull the auth params. string
triggerParameter Trigger Parameter that uses the secret string

CustomScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe custom scale rule. CustomScaleRuleMetadata
type Type of the custom scale rule
eg: azure-servicebus, redis etc.
string

CustomScaleRuleMetadata

Name Description Value
{customized property} string

HttpScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe http scale rule. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value
{customized property} string

TcpScaleRule

Name Description Value
auth Authentication secrets for the tcp scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe tcp scale rule. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value
{customized property} string

UserSourceInfo

Name Description Value
version Version of the source string
type Set the object type BuildResult
Container
Jar
NetCoreZip
Source
War (required)

BuildResultUserSourceInfo

Name Description Value
type Type of the source uploaded 'BuildResult' (required)
buildResultId Resource id of an existing succeeded build result under the same Spring instance. string

CustomContainerUserSourceInfo

Name Description Value
type Type of the source uploaded 'Container' (required)
customContainer Custom container payload CustomContainer

CustomContainer

Name Description Value
args Arguments to the entrypoint. The docker image's CMD is used if this is not provided. string[]
command Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. string[]
containerImage Container image of the custom container. This should be in the form of {repository}:{tag} without the server name of the registry string
imageRegistryCredential Credential of the image registry ImageRegistryCredential
languageFramework Language framework of the container image uploaded. Supported values: "springboot", "", null. string
server The name of the registry that contains the container image string

ImageRegistryCredential

Name Description Value
password The password of the image registry credential string
username The username of the image registry credential string

JarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'Jar' (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the Jar file string

NetCoreZipUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'NetCoreZip' (required)
netCoreMainEntryPath The path to the .NET executable relative to zip root string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the .Net file string

SourceUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'Source' (required)
artifactSelector Selector for the artifact to be used for the deployment for multi-module projects. This should be
the relative path to the target module/project.
string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the source file string

WarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'War' (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the war file string
serverVersion Server version, currently only Apache Tomcat is supported string

Sku

Name Description Value
capacity Current capacity of the target resource int
name Name of the Sku string
tier Tier of the Sku string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Deploy a simple Azure Spring Apps microservice application

Deploy to Azure
This template deploys a simple Azure Spring Apps microservice application to run on Azure.

ARM template resource definition

The Spring/apps/deployments 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/deployments resource, add the following JSON to your template.

{
  "type": "Microsoft.AppPlatform/Spring/apps/deployments",
  "apiVersion": "2023-11-01-preview",
  "name": "string",
  "sku": {
    "capacity": "int",
    "name": "string",
    "tier": "string"
  },
  "properties": {
    "active": "bool",
    "deploymentSettings": {
      "addonConfigs": {
        "{customized property}": {}
      },
      "apms": [
        {
          "resourceId": "string"
        }
      ],
      "containerProbeSettings": {
        "disableProbe": "bool"
      },
      "environmentVariables": {
        "{customized property}": "string"
      },
      "livenessProbe": {
        "disableProbe": "bool",
        "failureThreshold": "int",
        "initialDelaySeconds": "int",
        "periodSeconds": "int",
        "probeAction": {
          "type": "string"
          // For remaining properties, see ProbeAction objects
        },
        "successThreshold": "int",
        "timeoutSeconds": "int"
      },
      "readinessProbe": {
        "disableProbe": "bool",
        "failureThreshold": "int",
        "initialDelaySeconds": "int",
        "periodSeconds": "int",
        "probeAction": {
          "type": "string"
          // For remaining properties, see ProbeAction objects
        },
        "successThreshold": "int",
        "timeoutSeconds": "int"
      },
      "resourceRequests": {
        "cpu": "string",
        "memory": "string"
      },
      "scale": {
        "maxReplicas": "int",
        "minReplicas": "int",
        "rules": [
          {
            "azureQueue": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "queueLength": "int",
              "queueName": "string"
            },
            "custom": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              },
              "type": "string"
            },
            "http": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              }
            },
            "name": "string",
            "tcp": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "metadata": {
                "{customized property}": "string"
              }
            }
          }
        ]
      },
      "startupProbe": {
        "disableProbe": "bool",
        "failureThreshold": "int",
        "initialDelaySeconds": "int",
        "periodSeconds": "int",
        "probeAction": {
          "type": "string"
          // For remaining properties, see ProbeAction objects
        },
        "successThreshold": "int",
        "timeoutSeconds": "int"
      },
      "terminationGracePeriodSeconds": "int"
    },
    "source": {
      "version": "string",
      "type": "string"
      // For remaining properties, see UserSourceInfo objects
    }
  }
}

ProbeAction objects

Set the type property to specify the type of object.

For ExecAction, use:

  "type": "ExecAction",
  "command": [ "string" ]

For HTTPGetAction, use:

  "type": "HTTPGetAction",
  "path": "string",
  "scheme": "string"

For TCPSocketAction, use:

  "type": "TCPSocketAction"

UserSourceInfo objects

Set the type property to specify the type of object.

For BuildResult, use:

  "type": "BuildResult",
  "buildResultId": "string"

For Container, use:

  "type": "Container",
  "customContainer": {
    "args": [ "string" ],
    "command": [ "string" ],
    "containerImage": "string",
    "imageRegistryCredential": {
      "password": "string",
      "username": "string"
    },
    "languageFramework": "string",
    "server": "string"
  }

For Jar, use:

  "type": "Jar",
  "jvmOptions": "string",
  "relativePath": "string",
  "runtimeVersion": "string"

For NetCoreZip, use:

  "type": "NetCoreZip",
  "netCoreMainEntryPath": "string",
  "relativePath": "string",
  "runtimeVersion": "string"

For Source, use:

  "type": "Source",
  "artifactSelector": "string",
  "relativePath": "string",
  "runtimeVersion": "string"

For War, use:

  "type": "War",
  "jvmOptions": "string",
  "relativePath": "string",
  "runtimeVersion": "string",
  "serverVersion": "string"

Property values

Spring/apps/deployments

Name Description Value
type The resource type 'Microsoft.AppPlatform/Spring/apps/deployments'
apiVersion The resource api version '2023-11-01-preview'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)
sku Sku of the Deployment resource Sku
properties Properties of the Deployment resource DeploymentResourceProperties

DeploymentResourceProperties

Name Description Value
active Indicates whether the Deployment is active bool
deploymentSettings Deployment settings of the Deployment DeploymentSettings
source Uploaded source information of the deployment. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection of addons DeploymentSettingsAddonConfigs
apms Collection of ApmReferences ApmReference[]
containerProbeSettings Container liveness and readiness probe settings ContainerProbeSettings
environmentVariables Collection of environment variables DeploymentSettingsEnvironmentVariables
livenessProbe Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests The requested resource quantity for required CPU and Memory. It is recommended that using this field to represent the required CPU and Memory, the old field cpu and memoryInGB will be deprecated later. ResourceRequests
scale Scaling properties for the Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a App Instance's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. int

DeploymentSettingsAddonConfigs

Name Description Value
{customized property}

ApmReference

Name Description Value
resourceId Resource Id of the APM string (required)

ContainerProbeSettings

Name Description Value
disableProbe Indicates whether disable the liveness and readiness probe bool

DeploymentSettingsEnvironmentVariables

Name Description Value
{customized property} string

Probe

Name Description Value
disableProbe Indicate whether the probe is disabled. bool (required)
failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. int
initialDelaySeconds Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds How often (in seconds) to perform the probe. Minimum value is 1. int
probeAction The action of the probe. ProbeAction
successThreshold Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. int
timeoutSeconds Number of seconds after which the probe times out. Minimum value is 1. int

ProbeAction

Name Description Value
type Set the object type ExecAction
HTTPGetAction
TCPSocketAction (required)

ExecAction

Name Description Value
type The type of the action to take to perform the health check. 'ExecAction' (required)
command Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is not run inside a shell, so traditional shell instructions (',', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. string[]

HttpGetAction

Name Description Value
type The type of the action to take to perform the health check. 'HTTPGetAction' (required)
path Path to access on the HTTP server. string
scheme Scheme to use for connecting to the host. Defaults to HTTP.

Possible enum values:
- "HTTP" means that the scheme used will be http://
- "HTTPS" means that the scheme used will be https://
'HTTP'
'HTTPS'

TCPSocketAction

Name Description Value
type The type of the action to take to perform the health check. 'TCPSocketAction' (required)

ResourceRequests

Name Description Value
cpu Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. string
memory Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. string

Scale

Name Description Value
maxReplicas Optional. Maximum number of container replicas. Defaults to 10 if not set. int
minReplicas Optional. Minimum number of container replicas. int
rules Scaling rules. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Azure Queue based scaling. QueueScaleRule
custom Custom scale rule. CustomScaleRule
http HTTP requests based scaling. HttpScaleRule
name Scale Rule Name string
tcp Tcp requests based scaling. TcpScaleRule

QueueScaleRule

Name Description Value
auth Authentication secrets for the queue scale rule. ScaleRuleAuth[]
queueLength Queue length. int
queueName Queue name. string

ScaleRuleAuth

Name Description Value
secretRef Name of the Azure Spring Apps App Instance secret from which to pull the auth params. string
triggerParameter Trigger Parameter that uses the secret string

CustomScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe custom scale rule. CustomScaleRuleMetadata
type Type of the custom scale rule
eg: azure-servicebus, redis etc.
string

CustomScaleRuleMetadata

Name Description Value
{customized property} string

HttpScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe http scale rule. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value
{customized property} string

TcpScaleRule

Name Description Value
auth Authentication secrets for the tcp scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe tcp scale rule. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value
{customized property} string

UserSourceInfo

Name Description Value
version Version of the source string
type Set the object type BuildResult
Container
Jar
NetCoreZip
Source
War (required)

BuildResultUserSourceInfo

Name Description Value
type Type of the source uploaded 'BuildResult' (required)
buildResultId Resource id of an existing succeeded build result under the same Spring instance. string

CustomContainerUserSourceInfo

Name Description Value
type Type of the source uploaded 'Container' (required)
customContainer Custom container payload CustomContainer

CustomContainer

Name Description Value
args Arguments to the entrypoint. The docker image's CMD is used if this is not provided. string[]
command Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. string[]
containerImage Container image of the custom container. This should be in the form of {repository}:{tag} without the server name of the registry string
imageRegistryCredential Credential of the image registry ImageRegistryCredential
languageFramework Language framework of the container image uploaded. Supported values: "springboot", "", null. string
server The name of the registry that contains the container image string

ImageRegistryCredential

Name Description Value
password The password of the image registry credential string
username The username of the image registry credential string

JarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'Jar' (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the Jar file string

NetCoreZipUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'NetCoreZip' (required)
netCoreMainEntryPath The path to the .NET executable relative to zip root string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the .Net file string

SourceUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'Source' (required)
artifactSelector Selector for the artifact to be used for the deployment for multi-module projects. This should be
the relative path to the target module/project.
string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the source file string

WarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded 'War' (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the war file string
serverVersion Server version, currently only Apache Tomcat is supported string

Sku

Name Description Value
capacity Current capacity of the target resource int
name Name of the Sku string
tier Tier of the Sku string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Deploy a simple Azure Spring Apps microservice application

Deploy to Azure
This template deploys a simple Azure Spring Apps microservice application to run on Azure.

Terraform (AzAPI provider) resource definition

The Spring/apps/deployments 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.AppPlatform/Spring/apps/deployments resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.AppPlatform/Spring/apps/deployments@2023-11-01-preview"
  name = "string"
  parent_id = "string"
  body = jsonencode({
    properties = {
      active = bool
      deploymentSettings = {
        addonConfigs = {}
        apms = [
          {
            resourceId = "string"
          }
        ]
        containerProbeSettings = {
          disableProbe = bool
        }
        environmentVariables = {
          {customized property} = "string"
        }
        livenessProbe = {
          disableProbe = bool
          failureThreshold = int
          initialDelaySeconds = int
          periodSeconds = int
          probeAction = {
            type = "string"
            // For remaining properties, see ProbeAction objects
          }
          successThreshold = int
          timeoutSeconds = int
        }
        readinessProbe = {
          disableProbe = bool
          failureThreshold = int
          initialDelaySeconds = int
          periodSeconds = int
          probeAction = {
            type = "string"
            // For remaining properties, see ProbeAction objects
          }
          successThreshold = int
          timeoutSeconds = int
        }
        resourceRequests = {
          cpu = "string"
          memory = "string"
        }
        scale = {
          maxReplicas = int
          minReplicas = int
          rules = [
            {
              azureQueue = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                queueLength = int
                queueName = "string"
              }
              custom = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
                type = "string"
              }
              http = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
              }
              name = "string"
              tcp = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                metadata = {
                  {customized property} = "string"
                }
              }
            }
          ]
        }
        startupProbe = {
          disableProbe = bool
          failureThreshold = int
          initialDelaySeconds = int
          periodSeconds = int
          probeAction = {
            type = "string"
            // For remaining properties, see ProbeAction objects
          }
          successThreshold = int
          timeoutSeconds = int
        }
        terminationGracePeriodSeconds = int
      }
      source = {
        version = "string"
        type = "string"
        // For remaining properties, see UserSourceInfo objects
      }
    }
    sku = {
      capacity = int
      name = "string"
      tier = "string"
    }
  })
}

ProbeAction objects

Set the type property to specify the type of object.

For ExecAction, use:

  type = "ExecAction"
  command = [
    "string"
  ]

For HTTPGetAction, use:

  type = "HTTPGetAction"
  path = "string"
  scheme = "string"

For TCPSocketAction, use:

  type = "TCPSocketAction"

UserSourceInfo objects

Set the type property to specify the type of object.

For BuildResult, use:

  type = "BuildResult"
  buildResultId = "string"

For Container, use:

  type = "Container"
  customContainer = {
    args = [
      "string"
    ]
    command = [
      "string"
    ]
    containerImage = "string"
    imageRegistryCredential = {
      password = "string"
      username = "string"
    }
    languageFramework = "string"
    server = "string"
  }

For Jar, use:

  type = "Jar"
  jvmOptions = "string"
  relativePath = "string"
  runtimeVersion = "string"

For NetCoreZip, use:

  type = "NetCoreZip"
  netCoreMainEntryPath = "string"
  relativePath = "string"
  runtimeVersion = "string"

For Source, use:

  type = "Source"
  artifactSelector = "string"
  relativePath = "string"
  runtimeVersion = "string"

For War, use:

  type = "War"
  jvmOptions = "string"
  relativePath = "string"
  runtimeVersion = "string"
  serverVersion = "string"

Property values

Spring/apps/deployments

Name Description Value
type The resource type "Microsoft.AppPlatform/Spring/apps/deployments@2023-11-01-preview"
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: apps
sku Sku of the Deployment resource Sku
properties Properties of the Deployment resource DeploymentResourceProperties

DeploymentResourceProperties

Name Description Value
active Indicates whether the Deployment is active bool
deploymentSettings Deployment settings of the Deployment DeploymentSettings
source Uploaded source information of the deployment. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection of addons DeploymentSettingsAddonConfigs
apms Collection of ApmReferences ApmReference[]
containerProbeSettings Container liveness and readiness probe settings ContainerProbeSettings
environmentVariables Collection of environment variables DeploymentSettingsEnvironmentVariables
livenessProbe Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests The requested resource quantity for required CPU and Memory. It is recommended that using this field to represent the required CPU and Memory, the old field cpu and memoryInGB will be deprecated later. ResourceRequests
scale Scaling properties for the Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a App Instance's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. int

DeploymentSettingsAddonConfigs

Name Description Value
{customized property}

ApmReference

Name Description Value
resourceId Resource Id of the APM string (required)

ContainerProbeSettings

Name Description Value
disableProbe Indicates whether disable the liveness and readiness probe bool

DeploymentSettingsEnvironmentVariables

Name Description Value
{customized property} string

Probe

Name Description Value
disableProbe Indicate whether the probe is disabled. bool (required)
failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. int
initialDelaySeconds Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds How often (in seconds) to perform the probe. Minimum value is 1. int
probeAction The action of the probe. ProbeAction
successThreshold Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. int
timeoutSeconds Number of seconds after which the probe times out. Minimum value is 1. int

ProbeAction

Name Description Value
type Set the object type ExecAction
HTTPGetAction
TCPSocketAction (required)

ExecAction

Name Description Value
type The type of the action to take to perform the health check. "ExecAction" (required)
command Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is not run inside a shell, so traditional shell instructions (',', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. string[]

HttpGetAction

Name Description Value
type The type of the action to take to perform the health check. "HTTPGetAction" (required)
path Path to access on the HTTP server. string
scheme Scheme to use for connecting to the host. Defaults to HTTP.

Possible enum values:
- "HTTP" means that the scheme used will be http://
- "HTTPS" means that the scheme used will be https://
"HTTP"
"HTTPS"

TCPSocketAction

Name Description Value
type The type of the action to take to perform the health check. "TCPSocketAction" (required)

ResourceRequests

Name Description Value
cpu Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. string
memory Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. string

Scale

Name Description Value
maxReplicas Optional. Maximum number of container replicas. Defaults to 10 if not set. int
minReplicas Optional. Minimum number of container replicas. int
rules Scaling rules. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Azure Queue based scaling. QueueScaleRule
custom Custom scale rule. CustomScaleRule
http HTTP requests based scaling. HttpScaleRule
name Scale Rule Name string
tcp Tcp requests based scaling. TcpScaleRule

QueueScaleRule

Name Description Value
auth Authentication secrets for the queue scale rule. ScaleRuleAuth[]
queueLength Queue length. int
queueName Queue name. string

ScaleRuleAuth

Name Description Value
secretRef Name of the Azure Spring Apps App Instance secret from which to pull the auth params. string
triggerParameter Trigger Parameter that uses the secret string

CustomScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe custom scale rule. CustomScaleRuleMetadata
type Type of the custom scale rule
eg: azure-servicebus, redis etc.
string

CustomScaleRuleMetadata

Name Description Value
{customized property} string

HttpScaleRule

Name Description Value
auth Authentication secrets for the custom scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe http scale rule. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value
{customized property} string

TcpScaleRule

Name Description Value
auth Authentication secrets for the tcp scale rule. ScaleRuleAuth[]
metadata Metadata properties to describe tcp scale rule. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value
{customized property} string

UserSourceInfo

Name Description Value
version Version of the source string
type Set the object type BuildResult
Container
Jar
NetCoreZip
Source
War (required)

BuildResultUserSourceInfo

Name Description Value
type Type of the source uploaded "BuildResult" (required)
buildResultId Resource id of an existing succeeded build result under the same Spring instance. string

CustomContainerUserSourceInfo

Name Description Value
type Type of the source uploaded "Container" (required)
customContainer Custom container payload CustomContainer

CustomContainer

Name Description Value
args Arguments to the entrypoint. The docker image's CMD is used if this is not provided. string[]
command Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. string[]
containerImage Container image of the custom container. This should be in the form of {repository}:{tag} without the server name of the registry string
imageRegistryCredential Credential of the image registry ImageRegistryCredential
languageFramework Language framework of the container image uploaded. Supported values: "springboot", "", null. string
server The name of the registry that contains the container image string

ImageRegistryCredential

Name Description Value
password The password of the image registry credential string
username The username of the image registry credential string

JarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded "Jar" (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the Jar file string

NetCoreZipUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded "NetCoreZip" (required)
netCoreMainEntryPath The path to the .NET executable relative to zip root string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the .Net file string

SourceUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded "Source" (required)
artifactSelector Selector for the artifact to be used for the deployment for multi-module projects. This should be
the relative path to the target module/project.
string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the source file string

WarUploadedUserSourceInfo

Name Description Value
type Type of the source uploaded "War" (required)
jvmOptions JVM parameter string
relativePath Relative path of the storage which stores the source string
runtimeVersion Runtime version of the war file string
serverVersion Server version, currently only Apache Tomcat is supported string

Sku

Name Description Value
capacity Current capacity of the target resource int
name Name of the Sku string
tier Tier of the Sku string