Microsoft. AppPlatform Printemps/applications/déploiements 2023-01-01-preview

Remarques

Note : Azure Spring Apps Application Deployments (Microsoft. AppPlatform/Spring/applications/déploiements) est désormais déprécié et sera retiré du service le 31-05-2028. Pour plus d’informations, consultez https://aka.ms/asaretirement.

Définition des ressources sur les Biceps

Le type de ressource Spring/apps/deployments peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. AppPlatform/Spring/applications/déployements, ajoutez le Bicep suivant à votre modèle.

resource symbolicname 'Microsoft.AppPlatform/Spring/apps/deployments@2023-01-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    active: bool
    deploymentSettings: {
      addonConfigs: {
        {customized property}: any(...)
      }
      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'
  }
}

Objets UserSourceInfo

Définissez le type propriété pour spécifier le type d’objet.

Pour BuildResult, utilisez :

{
  buildResultId: 'string'
  type: 'BuildResult'
}

Pour conteneur, utilisez :

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

Pour jar, utilisez :

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

Pour NetCoreZip, utilisez :

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

Pour Source, utilisez :

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

Objets ProbeAction

Définissez le type propriété pour spécifier le type d’objet.

Pour ExecAction, utilisez :

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

Pour httpGetAction, utilisez :

{
  path: 'string'
  scheme: 'string'
  type: 'HTTPGetAction'
}

Pour TCPSocketAction, utilisez :

{
  type: 'TCPSocketAction'
}

Valeurs de propriété

Microsoft. AppPlatform/Spring/applications/déploiements

Name Description Value
name Nom de la ressource chaîne (obligatoire)
parent Dans Bicep, vous pouvez spécifier la ressource parent pour une ressource enfant. Vous devez uniquement ajouter cette propriété lorsque la ressource enfant est déclarée en dehors de la ressource parente.

Pour plus d’informations, consultez ressource enfant en dehors de la ressource parente.
Nom symbolique de la ressource de type : Spring/apps
properties Propriétés de la ressource de déploiement DeploymentResourceProperties
sku Référence SKU de la ressource de déploiement Sku

BuildResultUserSourceInfo

Name Description Value
buildResultId ID de ressource d’un résultat de build réussi existant sous la même instance Spring. string
type Type de la source chargée 'BuildResult' (obligatoire)

ContainerProbeSettings

Name Description Value
disableProbe Indique si la sonde liveness et readiness est désactivée bool

CustomContainer

Name Description Value
args Arguments du point d’entrée. Le CMD de l’image Docker est utilisé s’il n’est pas fourni. string[]
command Tableau de points d’entrée. Non exécuté dans un interpréteur de commandes. L’élément ENTRYPOINT de l’image Docker est utilisé s’il n’est pas fourni. string[]
containerImage Image conteneur du conteneur personnalisé. Il doit s’agir de la forme d'<référentiel>:<balise> sans le nom du serveur du Registre string
imageRegistryCredential Informations d’identification du Registre d’images ImageRegistryCredential
languageFramework Infrastructure de langage de l’image conteneur chargée string
server Nom du registre qui contient l’image conteneur string

CustomContainerUserSourceInfo

Name Description Value
customContainer Charge utile de conteneur personnalisée CustomContainer
type Type de la source chargée 'Contenant' (obligatoire)

CustomScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire une règle d’échelle personnalisée. CustomScaleRuleMetadata
type Type de la règle d’échelle personnalisée
par exemple : azure-servicebus, redis, etc.
string

CustomScaleRuleMetadata

Name Description Value

DeploymentResourceProperties

Name Description Value
active Indique si le déploiement est actif bool
deploymentSettings Paramètres de déploiement du déploiement DeploymentSettings
source Informations sources chargées du déploiement. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection de compléments DeploymentSettingsAddonConfigs
containerProbeSettings Paramètres de sonde d’intégrité et de préparation du conteneur ContainerProbeSettings
environmentVariables Collection de variables d’environnement DeploymentSettingsEnvironmentVariables
livenessProbe Sonde périodique de la durée de vie de l’instance d’application. L’instance d’application est redémarrée si la sonde échoue. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Sonde périodique de préparation du service App Instance. L’instance d’application est supprimée des points de terminaison de service en cas d’échec de la sonde. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests Quantité de ressources demandée pour le processeur et la mémoire requis. Il est recommandé d’utiliser ce champ pour représenter l’UC et la mémoire requises, l’ancien processeur de champ et memoryInGB sera déconseillé ultérieurement. ResourceRequests
scale Mise à l’échelle des propriétés pour l’Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indique que l’instance d’application a correctement initialisé. Si elle est spécifiée, aucune autre sonde n’est exécutée tant que cela n’est pas terminé. Si cette sonde échoue, le pod est redémarré, comme si livenessProbe a échoué. Cela peut être utilisé pour fournir différents paramètres de sonde au début du cycle de vie d’une instance d’application, lorsqu’il peut prendre beaucoup de temps pour charger des données ou réchauffer un cache, par rapport à l’opération d’état stable. Cela ne peut pas être mis à jour. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Durée facultative en secondes, l’instance d’application doit s’arrêter correctement. Peut être diminué dans la demande de suppression. La valeur doit être un entier non négatif. La valeur zéro indique l’arrêt immédiatement via le signal de destruction (aucune occasion d’arrêter). Si cette valeur est nulle, la période de grâce par défaut sera utilisée à la place. La période de grâce est la durée en secondes après que les processus en cours d’exécution dans l’instance d’application soient envoyés un signal d’arrêt et l’heure à laquelle les processus sont arrêtés de force avec un signal de destruction. Définissez cette valeur plus longtemps que l’heure de nettoyage attendue pour votre processus. La valeur par défaut est de 90 secondes. int

DeploymentSettingsAddonConfigs

Name Description Value

DeploymentSettingsEnvironmentVariables

Name Description Value

ExecAction

Name Description Value
command La commande est la ligne de commande à exécuter à l’intérieur du conteneur, le répertoire de travail de la commande est racine ('/') dans le système de fichiers du conteneur. La commande n’est pas exécutée à l’intérieur d’un interpréteur de commandes, de sorte que les instructions traditionnelles de l’interpréteur de commandes ('|', etc.) ne fonctionnent pas. Pour utiliser un interpréteur de commandes, vous devez appeler explicitement cet interpréteur de commandes. L’état de sortie 0 est traité comme vivant/sain et non nul n’est pas sain. string[]
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'ExecAction' (obligatoire)

HttpGetAction

Name Description Value
path Chemin d’accès au serveur HTTP. string
scheme Schéma à utiliser pour la connexion à l’hôte. La valeur par défaut est HTTP.

Valeurs d’énumération possibles :
- "HTTP" signifie que le schéma utilisé sera http://
- "HTTPS" signifie que le schéma utilisé sera https://
'HTTP'
'HTTPS'
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'HTTPGetAction' (obligatoire)

HttpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle http. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value

ImageRegistryCredential

Name Description Value
password Mot de passe des informations d’identification du Registre d’images string
username Nom d’utilisateur des informations d’identification du Registre d’images string

JarUploadedUserSourceInfo

Name Description Value
jvmOptions Paramètre JVM string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier Jar string
type Type de la source chargée 'Jar' (obligatoire)

NetCoreZipUploadedUserSourceInfo

Name Description Value
netCoreMainEntryPath Le chemin vers l’exécutable .NET par rapport à la racine zip string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier .Net string
type Type de la source chargée 'NetCoreZip' (obligatoire)

Probe

Name Description Value
disableProbe Indiquez si la sonde est désactivée. bool (obligatoire)
failureThreshold Échecs consécutifs minimum pour que la sonde soit considérée comme ayant échoué après avoir réussi. La valeur minimale est 1. int
initialDelaySeconds Nombre de secondes après le démarrage de l’instance d’application avant que les sondes ne soient lancées. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds Fréquence (en secondes) d’exécution de la sonde. La valeur minimale est 1. int
probeAction Action de la sonde. ProbeAction
successThreshold Nombre minimal de réussites consécutives pour que la sonde soit considérée comme réussie après avoir échoué. Doit être 1 pour la vie et le démarrage. La valeur minimale est 1. int
timeoutSeconds Nombre de secondes après lesquelles la sonde expire. La valeur minimale est 1. int

ProbeAction

Name Description Value
type Défini sur « ExecAction » pour le type ExecAction. Défini sur « HTTPGetAction » pour le type HttpGetAction. Défini sur « TCPSocketAction » pour le type TCPSocketAction. 'ExecAction'
'HTTPGetAction'
'TCPSocketAction' (obligatoire)

QueueScaleRule

Name Description Value
auth Secrets d’authentification pour la règle d’échelle de file d’attente. ScaleRuleAuth[]
queueLength Longueur de file d’attente. int
queueName Nom de la file d’attente. string

ResourceRequests

Name Description Value
cpu Processeur requis. 1 cœur peut être représenté par 1 ou 1 000m. Il doit s’agir de 500m ou 1 pour le niveau De base et {500m, 1, 2, 3, 4} pour le niveau Standard. string
memory Mémoire requise. 1 Go peuvent être représentés par 1Gi ou 1024Mi. Il doit s’agir de {512Mi, 1Gi, 2Gi} pour le niveau De base et {512Mi, 1Gi, 2Gi, ..., 8Gi} pour le niveau Standard. string

Scale

Name Description Value
maxReplicas Optional. Nombre maximal de réplicas de conteneur. La valeur par défaut est 10 si elle n’est pas définie. int
minReplicas Optional. Nombre minimal de réplicas de conteneur. int
rules Règles de mise à l’échelle. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Mise à l’échelle basée sur Azure Queue. QueueScaleRule
custom Règle d’échelle personnalisée. CustomScaleRule
http Mise à l’échelle basée sur les requêtes HTTP. HttpScaleRule
name Nom de la règle de mise à l’échelle string
tcp Mise à l’échelle basée sur les requêtes Tcp. TcpScaleRule

ScaleRuleAuth

Name Description Value
secretRef Nom du secret Azure Spring Apps App Instance d’où extraire les params d’authentification. string
triggerParameter Paramètre de déclencheur qui utilise le secret string

Sku

Name Description Value
capacity Capacité actuelle de la ressource cible int
name Nom de la référence SKU string
tier Niveau de la référence SKU string

SourceUploadedUserSourceInfo

Name Description Value
artifactSelector Sélecteur pour l’artefact à utiliser pour le déploiement pour les projets multimodèles. Il doit s’agir de
chemin d’accès relatif au module/projet cible.
string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier source string
type Type de la source chargée 'Source' (obligatoire)

TcpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle tcp. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle tcp. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value

TCPSocketAction

Name Description Value
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'TCPSocketAction' (obligatoire)

UserSourceInfo

Name Description Value
type Défini sur « BuildResult » pour le type BuildResultUserSourceInfo. Défini sur « Container » pour le type CustomContainerUserSourceInfo. Défini sur « Jar » pour le type JarUploadedUserSourceInfo. Défini sur « NetCoreZip » pour le type NetCoreZipUploadedUserSourceInfo. Défini sur « Source » pour le type SourceUploadedUserSourceInfo. 'BuildResult'
'Container'
'Jar'
'NetCoreZip'
'Source' (obligatoire)
version Version de la source string

Exemples d’utilisation

Échantillons de Biceps

Un exemple de base de déploiement de Spring Cloud Deployment.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource spring 'Microsoft.AppPlatform/Spring@2023-05-01-preview' = {
  name: resourceName
  location: location
  properties: {
    zoneRedundant: false
  }
  sku: {
    name: 'E0'
  }
}

resource app 'Microsoft.AppPlatform/Spring/apps@2023-05-01-preview' = {
  parent: spring
  name: resourceName
  location: location
  properties: {
    customPersistentDisks: []
    enableEndToEndTLS: false
    public: false
  }
}

resource deployment 'Microsoft.AppPlatform/Spring/apps/deployments@2023-05-01-preview' = {
  parent: app
  name: resourceName
  properties: {
    deploymentSettings: {
      environmentVariables: {}
    }
    source: {
      customContainer: {
        args: []
        command: []
        containerImage: 'springio/gs-spring-boot-docker'
        languageFramework: ''
        server: 'docker.io'
      }
      type: 'Container'
    }
  }
  sku: {
    capacity: 1
    name: 'E0'
    tier: 'Enterprise'
  }
}

Azure Quickstart Examples

Les modèles suivants Azure Quickstart contiennent Bicep exemples pour déployer ce type de ressource.

Dossier Bicep Description
Déploie une application microservice Azure Spring Apps simple Ce modèle déploie une application microservice simple Azure Spring Apps à exécuter sur Azure.

Définition de ressource de modèle ARM

Le type de ressource Spring/apps/deployments peut être déployé avec des opérations qui ciblent :

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. AppPlatform/Spring/applications/déployements, ajoutez le JSON suivant à votre modèle.

{
  "type": "Microsoft.AppPlatform/Spring/apps/deployments",
  "apiVersion": "2023-01-01-preview",
  "name": "string",
  "properties": {
    "active": "bool",
    "deploymentSettings": {
      "addonConfigs": {
        "{customized property}": {}
      },
      "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"
  }
}

Objets UserSourceInfo

Définissez le type propriété pour spécifier le type d’objet.

Pour BuildResult, utilisez :

{
  "buildResultId": "string",
  "type": "BuildResult"
}

Pour conteneur, utilisez :

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

Pour jar, utilisez :

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

Pour NetCoreZip, utilisez :

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

Pour Source, utilisez :

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

Objets ProbeAction

Définissez le type propriété pour spécifier le type d’objet.

Pour ExecAction, utilisez :

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

Pour httpGetAction, utilisez :

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

Pour TCPSocketAction, utilisez :

{
  "type": "TCPSocketAction"
}

Valeurs de propriété

Microsoft. AppPlatform/Spring/applications/déploiements

Name Description Value
apiVersion Version de l’API '2023-01-01-preview'
name Nom de la ressource chaîne (obligatoire)
properties Propriétés de la ressource de déploiement DeploymentResourceProperties
sku Référence SKU de la ressource de déploiement Sku
type Type de ressource « Microsoft. AppPlatform/Spring/applications/déploiements

BuildResultUserSourceInfo

Name Description Value
buildResultId ID de ressource d’un résultat de build réussi existant sous la même instance Spring. string
type Type de la source chargée 'BuildResult' (obligatoire)

ContainerProbeSettings

Name Description Value
disableProbe Indique si la sonde liveness et readiness est désactivée bool

CustomContainer

Name Description Value
args Arguments du point d’entrée. Le CMD de l’image Docker est utilisé s’il n’est pas fourni. string[]
command Tableau de points d’entrée. Non exécuté dans un interpréteur de commandes. L’élément ENTRYPOINT de l’image Docker est utilisé s’il n’est pas fourni. string[]
containerImage Image conteneur du conteneur personnalisé. Il doit s’agir de la forme d'<référentiel>:<balise> sans le nom du serveur du Registre string
imageRegistryCredential Informations d’identification du Registre d’images ImageRegistryCredential
languageFramework Infrastructure de langage de l’image conteneur chargée string
server Nom du registre qui contient l’image conteneur string

CustomContainerUserSourceInfo

Name Description Value
customContainer Charge utile de conteneur personnalisée CustomContainer
type Type de la source chargée 'Contenant' (obligatoire)

CustomScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire une règle d’échelle personnalisée. CustomScaleRuleMetadata
type Type de la règle d’échelle personnalisée
par exemple : azure-servicebus, redis, etc.
string

CustomScaleRuleMetadata

Name Description Value

DeploymentResourceProperties

Name Description Value
active Indique si le déploiement est actif bool
deploymentSettings Paramètres de déploiement du déploiement DeploymentSettings
source Informations sources chargées du déploiement. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection de compléments DeploymentSettingsAddonConfigs
containerProbeSettings Paramètres de sonde d’intégrité et de préparation du conteneur ContainerProbeSettings
environmentVariables Collection de variables d’environnement DeploymentSettingsEnvironmentVariables
livenessProbe Sonde périodique de la durée de vie de l’instance d’application. L’instance d’application est redémarrée si la sonde échoue. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Sonde périodique de préparation du service App Instance. L’instance d’application est supprimée des points de terminaison de service en cas d’échec de la sonde. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests Quantité de ressources demandée pour le processeur et la mémoire requis. Il est recommandé d’utiliser ce champ pour représenter l’UC et la mémoire requises, l’ancien processeur de champ et memoryInGB sera déconseillé ultérieurement. ResourceRequests
scale Mise à l’échelle des propriétés pour l’Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indique que l’instance d’application a correctement initialisé. Si elle est spécifiée, aucune autre sonde n’est exécutée tant que cela n’est pas terminé. Si cette sonde échoue, le pod est redémarré, comme si livenessProbe a échoué. Cela peut être utilisé pour fournir différents paramètres de sonde au début du cycle de vie d’une instance d’application, lorsqu’il peut prendre beaucoup de temps pour charger des données ou réchauffer un cache, par rapport à l’opération d’état stable. Cela ne peut pas être mis à jour. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Durée facultative en secondes, l’instance d’application doit s’arrêter correctement. Peut être diminué dans la demande de suppression. La valeur doit être un entier non négatif. La valeur zéro indique l’arrêt immédiatement via le signal de destruction (aucune occasion d’arrêter). Si cette valeur est nulle, la période de grâce par défaut sera utilisée à la place. La période de grâce est la durée en secondes après que les processus en cours d’exécution dans l’instance d’application soient envoyés un signal d’arrêt et l’heure à laquelle les processus sont arrêtés de force avec un signal de destruction. Définissez cette valeur plus longtemps que l’heure de nettoyage attendue pour votre processus. La valeur par défaut est de 90 secondes. int

DeploymentSettingsAddonConfigs

Name Description Value

DeploymentSettingsEnvironmentVariables

Name Description Value

ExecAction

Name Description Value
command La commande est la ligne de commande à exécuter à l’intérieur du conteneur, le répertoire de travail de la commande est racine ('/') dans le système de fichiers du conteneur. La commande n’est pas exécutée à l’intérieur d’un interpréteur de commandes, de sorte que les instructions traditionnelles de l’interpréteur de commandes ('|', etc.) ne fonctionnent pas. Pour utiliser un interpréteur de commandes, vous devez appeler explicitement cet interpréteur de commandes. L’état de sortie 0 est traité comme vivant/sain et non nul n’est pas sain. string[]
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'ExecAction' (obligatoire)

HttpGetAction

Name Description Value
path Chemin d’accès au serveur HTTP. string
scheme Schéma à utiliser pour la connexion à l’hôte. La valeur par défaut est HTTP.

Valeurs d’énumération possibles :
- "HTTP" signifie que le schéma utilisé sera http://
- "HTTPS" signifie que le schéma utilisé sera https://
'HTTP'
'HTTPS'
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'HTTPGetAction' (obligatoire)

HttpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle http. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value

ImageRegistryCredential

Name Description Value
password Mot de passe des informations d’identification du Registre d’images string
username Nom d’utilisateur des informations d’identification du Registre d’images string

JarUploadedUserSourceInfo

Name Description Value
jvmOptions Paramètre JVM string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier Jar string
type Type de la source chargée 'Jar' (obligatoire)

NetCoreZipUploadedUserSourceInfo

Name Description Value
netCoreMainEntryPath Le chemin vers l’exécutable .NET par rapport à la racine zip string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier .Net string
type Type de la source chargée 'NetCoreZip' (obligatoire)

Probe

Name Description Value
disableProbe Indiquez si la sonde est désactivée. bool (obligatoire)
failureThreshold Échecs consécutifs minimum pour que la sonde soit considérée comme ayant échoué après avoir réussi. La valeur minimale est 1. int
initialDelaySeconds Nombre de secondes après le démarrage de l’instance d’application avant que les sondes ne soient lancées. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds Fréquence (en secondes) d’exécution de la sonde. La valeur minimale est 1. int
probeAction Action de la sonde. ProbeAction
successThreshold Nombre minimal de réussites consécutives pour que la sonde soit considérée comme réussie après avoir échoué. Doit être 1 pour la vie et le démarrage. La valeur minimale est 1. int
timeoutSeconds Nombre de secondes après lesquelles la sonde expire. La valeur minimale est 1. int

ProbeAction

Name Description Value
type Défini sur « ExecAction » pour le type ExecAction. Défini sur « HTTPGetAction » pour le type HttpGetAction. Défini sur « TCPSocketAction » pour le type TCPSocketAction. 'ExecAction'
'HTTPGetAction'
'TCPSocketAction' (obligatoire)

QueueScaleRule

Name Description Value
auth Secrets d’authentification pour la règle d’échelle de file d’attente. ScaleRuleAuth[]
queueLength Longueur de file d’attente. int
queueName Nom de la file d’attente. string

ResourceRequests

Name Description Value
cpu Processeur requis. 1 cœur peut être représenté par 1 ou 1 000m. Il doit s’agir de 500m ou 1 pour le niveau De base et {500m, 1, 2, 3, 4} pour le niveau Standard. string
memory Mémoire requise. 1 Go peuvent être représentés par 1Gi ou 1024Mi. Il doit s’agir de {512Mi, 1Gi, 2Gi} pour le niveau De base et {512Mi, 1Gi, 2Gi, ..., 8Gi} pour le niveau Standard. string

Scale

Name Description Value
maxReplicas Optional. Nombre maximal de réplicas de conteneur. La valeur par défaut est 10 si elle n’est pas définie. int
minReplicas Optional. Nombre minimal de réplicas de conteneur. int
rules Règles de mise à l’échelle. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Mise à l’échelle basée sur Azure Queue. QueueScaleRule
custom Règle d’échelle personnalisée. CustomScaleRule
http Mise à l’échelle basée sur les requêtes HTTP. HttpScaleRule
name Nom de la règle de mise à l’échelle string
tcp Mise à l’échelle basée sur les requêtes Tcp. TcpScaleRule

ScaleRuleAuth

Name Description Value
secretRef Nom du secret Azure Spring Apps App Instance d’où extraire les params d’authentification. string
triggerParameter Paramètre de déclencheur qui utilise le secret string

Sku

Name Description Value
capacity Capacité actuelle de la ressource cible int
name Nom de la référence SKU string
tier Niveau de la référence SKU string

SourceUploadedUserSourceInfo

Name Description Value
artifactSelector Sélecteur pour l’artefact à utiliser pour le déploiement pour les projets multimodèles. Il doit s’agir de
chemin d’accès relatif au module/projet cible.
string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier source string
type Type de la source chargée 'Source' (obligatoire)

TcpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle tcp. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle tcp. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value

TCPSocketAction

Name Description Value
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'TCPSocketAction' (obligatoire)

UserSourceInfo

Name Description Value
type Défini sur « BuildResult » pour le type BuildResultUserSourceInfo. Défini sur « Container » pour le type CustomContainerUserSourceInfo. Défini sur « Jar » pour le type JarUploadedUserSourceInfo. Défini sur « NetCoreZip » pour le type NetCoreZipUploadedUserSourceInfo. Défini sur « Source » pour le type SourceUploadedUserSourceInfo. 'BuildResult'
'Container'
'Jar'
'NetCoreZip'
'Source' (obligatoire)
version Version de la source string

Exemples d’utilisation

Modèles de démarrage rapide Azure

Les modèles suivants Azure Quickstart déployent ce type de ressource.

Template Description
Déploie une application microservice Azure Spring Apps simple

Déployer vers Azure
Ce modèle déploie une application microservice simple Azure Spring Apps à exécuter sur Azure.

Définition de ressource Terraform (fournisseur AzAPI)

Le type de ressource Spring/apps/deployments peut être déployé avec des opérations qui ciblent :

  • Groupes de ressources

Pour obtenir la liste des propriétés modifiées dans chaque version de l’API, consultez journal des modifications.

Format de ressource

Pour créer un Microsoft. AppPlatform/Spring/applications/deployments, ajoutez le Terraform suivant à votre modèle.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.AppPlatform/Spring/apps/deployments@2023-01-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      active = bool
      deploymentSettings = {
        addonConfigs = {
          {customized property} = ?
        }
        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"
    }
  }
}

Objets UserSourceInfo

Définissez le type propriété pour spécifier le type d’objet.

Pour BuildResult, utilisez :

{
  buildResultId = "string"
  type = "BuildResult"
}

Pour conteneur, utilisez :

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

Pour jar, utilisez :

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

Pour NetCoreZip, utilisez :

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

Pour Source, utilisez :

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

Objets ProbeAction

Définissez le type propriété pour spécifier le type d’objet.

Pour ExecAction, utilisez :

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

Pour httpGetAction, utilisez :

{
  path = "string"
  scheme = "string"
  type = "HTTPGetAction"
}

Pour TCPSocketAction, utilisez :

{
  type = "TCPSocketAction"
}

Valeurs de propriété

Microsoft. AppPlatform/Spring/applications/déploiements

Name Description Value
name Nom de la ressource chaîne (obligatoire)
parent_id ID de la ressource qui est le parent de cette ressource. ID de ressource de type : Spring/apps
properties Propriétés de la ressource de déploiement DeploymentResourceProperties
sku Référence SKU de la ressource de déploiement Sku
type Type de ressource « Microsoft. AppPlatform/Spring/applications/deployments@2023-01-01-aperçu »

BuildResultUserSourceInfo

Name Description Value
buildResultId ID de ressource d’un résultat de build réussi existant sous la même instance Spring. string
type Type de la source chargée 'BuildResult' (obligatoire)

ContainerProbeSettings

Name Description Value
disableProbe Indique si la sonde liveness et readiness est désactivée bool

CustomContainer

Name Description Value
args Arguments du point d’entrée. Le CMD de l’image Docker est utilisé s’il n’est pas fourni. string[]
command Tableau de points d’entrée. Non exécuté dans un interpréteur de commandes. L’élément ENTRYPOINT de l’image Docker est utilisé s’il n’est pas fourni. string[]
containerImage Image conteneur du conteneur personnalisé. Il doit s’agir de la forme d'<référentiel>:<balise> sans le nom du serveur du Registre string
imageRegistryCredential Informations d’identification du Registre d’images ImageRegistryCredential
languageFramework Infrastructure de langage de l’image conteneur chargée string
server Nom du registre qui contient l’image conteneur string

CustomContainerUserSourceInfo

Name Description Value
customContainer Charge utile de conteneur personnalisée CustomContainer
type Type de la source chargée 'Contenant' (obligatoire)

CustomScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire une règle d’échelle personnalisée. CustomScaleRuleMetadata
type Type de la règle d’échelle personnalisée
par exemple : azure-servicebus, redis, etc.
string

CustomScaleRuleMetadata

Name Description Value

DeploymentResourceProperties

Name Description Value
active Indique si le déploiement est actif bool
deploymentSettings Paramètres de déploiement du déploiement DeploymentSettings
source Informations sources chargées du déploiement. UserSourceInfo

DeploymentSettings

Name Description Value
addonConfigs Collection de compléments DeploymentSettingsAddonConfigs
containerProbeSettings Paramètres de sonde d’intégrité et de préparation du conteneur ContainerProbeSettings
environmentVariables Collection de variables d’environnement DeploymentSettingsEnvironmentVariables
livenessProbe Sonde périodique de la durée de vie de l’instance d’application. L’instance d’application est redémarrée si la sonde échoue. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
readinessProbe Sonde périodique de préparation du service App Instance. L’instance d’application est supprimée des points de terminaison de service en cas d’échec de la sonde. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
resourceRequests Quantité de ressources demandée pour le processeur et la mémoire requis. Il est recommandé d’utiliser ce champ pour représenter l’UC et la mémoire requises, l’ancien processeur de champ et memoryInGB sera déconseillé ultérieurement. ResourceRequests
scale Mise à l’échelle des propriétés pour l’Azure Spring Apps App Instance. Scale
startupProbe StartupProbe indique que l’instance d’application a correctement initialisé. Si elle est spécifiée, aucune autre sonde n’est exécutée tant que cela n’est pas terminé. Si cette sonde échoue, le pod est redémarré, comme si livenessProbe a échoué. Cela peut être utilisé pour fournir différents paramètres de sonde au début du cycle de vie d’une instance d’application, lorsqu’il peut prendre beaucoup de temps pour charger des données ou réchauffer un cache, par rapport à l’opération d’état stable. Cela ne peut pas être mis à jour. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes Probe
terminationGracePeriodSeconds Durée facultative en secondes, l’instance d’application doit s’arrêter correctement. Peut être diminué dans la demande de suppression. La valeur doit être un entier non négatif. La valeur zéro indique l’arrêt immédiatement via le signal de destruction (aucune occasion d’arrêter). Si cette valeur est nulle, la période de grâce par défaut sera utilisée à la place. La période de grâce est la durée en secondes après que les processus en cours d’exécution dans l’instance d’application soient envoyés un signal d’arrêt et l’heure à laquelle les processus sont arrêtés de force avec un signal de destruction. Définissez cette valeur plus longtemps que l’heure de nettoyage attendue pour votre processus. La valeur par défaut est de 90 secondes. int

DeploymentSettingsAddonConfigs

Name Description Value

DeploymentSettingsEnvironmentVariables

Name Description Value

ExecAction

Name Description Value
command La commande est la ligne de commande à exécuter à l’intérieur du conteneur, le répertoire de travail de la commande est racine ('/') dans le système de fichiers du conteneur. La commande n’est pas exécutée à l’intérieur d’un interpréteur de commandes, de sorte que les instructions traditionnelles de l’interpréteur de commandes ('|', etc.) ne fonctionnent pas. Pour utiliser un interpréteur de commandes, vous devez appeler explicitement cet interpréteur de commandes. L’état de sortie 0 est traité comme vivant/sain et non nul n’est pas sain. string[]
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'ExecAction' (obligatoire)

HttpGetAction

Name Description Value
path Chemin d’accès au serveur HTTP. string
scheme Schéma à utiliser pour la connexion à l’hôte. La valeur par défaut est HTTP.

Valeurs d’énumération possibles :
- "HTTP" signifie que le schéma utilisé sera http://
- "HTTPS" signifie que le schéma utilisé sera https://
'HTTP'
'HTTPS'
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'HTTPGetAction' (obligatoire)

HttpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle personnalisée. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle http. HttpScaleRuleMetadata

HttpScaleRuleMetadata

Name Description Value

ImageRegistryCredential

Name Description Value
password Mot de passe des informations d’identification du Registre d’images string
username Nom d’utilisateur des informations d’identification du Registre d’images string

JarUploadedUserSourceInfo

Name Description Value
jvmOptions Paramètre JVM string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier Jar string
type Type de la source chargée 'Jar' (obligatoire)

NetCoreZipUploadedUserSourceInfo

Name Description Value
netCoreMainEntryPath Le chemin vers l’exécutable .NET par rapport à la racine zip string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier .Net string
type Type de la source chargée 'NetCoreZip' (obligatoire)

Probe

Name Description Value
disableProbe Indiquez si la sonde est désactivée. bool (obligatoire)
failureThreshold Échecs consécutifs minimum pour que la sonde soit considérée comme ayant échoué après avoir réussi. La valeur minimale est 1. int
initialDelaySeconds Nombre de secondes après le démarrage de l’instance d’application avant que les sondes ne soient lancées. Plus d’informations : https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes int
periodSeconds Fréquence (en secondes) d’exécution de la sonde. La valeur minimale est 1. int
probeAction Action de la sonde. ProbeAction
successThreshold Nombre minimal de réussites consécutives pour que la sonde soit considérée comme réussie après avoir échoué. Doit être 1 pour la vie et le démarrage. La valeur minimale est 1. int
timeoutSeconds Nombre de secondes après lesquelles la sonde expire. La valeur minimale est 1. int

ProbeAction

Name Description Value
type Défini sur « ExecAction » pour le type ExecAction. Défini sur « HTTPGetAction » pour le type HttpGetAction. Défini sur « TCPSocketAction » pour le type TCPSocketAction. 'ExecAction'
'HTTPGetAction'
'TCPSocketAction' (obligatoire)

QueueScaleRule

Name Description Value
auth Secrets d’authentification pour la règle d’échelle de file d’attente. ScaleRuleAuth[]
queueLength Longueur de file d’attente. int
queueName Nom de la file d’attente. string

ResourceRequests

Name Description Value
cpu Processeur requis. 1 cœur peut être représenté par 1 ou 1 000m. Il doit s’agir de 500m ou 1 pour le niveau De base et {500m, 1, 2, 3, 4} pour le niveau Standard. string
memory Mémoire requise. 1 Go peuvent être représentés par 1Gi ou 1024Mi. Il doit s’agir de {512Mi, 1Gi, 2Gi} pour le niveau De base et {512Mi, 1Gi, 2Gi, ..., 8Gi} pour le niveau Standard. string

Scale

Name Description Value
maxReplicas Optional. Nombre maximal de réplicas de conteneur. La valeur par défaut est 10 si elle n’est pas définie. int
minReplicas Optional. Nombre minimal de réplicas de conteneur. int
rules Règles de mise à l’échelle. ScaleRule[]

ScaleRule

Name Description Value
azureQueue Mise à l’échelle basée sur Azure Queue. QueueScaleRule
custom Règle d’échelle personnalisée. CustomScaleRule
http Mise à l’échelle basée sur les requêtes HTTP. HttpScaleRule
name Nom de la règle de mise à l’échelle string
tcp Mise à l’échelle basée sur les requêtes Tcp. TcpScaleRule

ScaleRuleAuth

Name Description Value
secretRef Nom du secret Azure Spring Apps App Instance d’où extraire les params d’authentification. string
triggerParameter Paramètre de déclencheur qui utilise le secret string

Sku

Name Description Value
capacity Capacité actuelle de la ressource cible int
name Nom de la référence SKU string
tier Niveau de la référence SKU string

SourceUploadedUserSourceInfo

Name Description Value
artifactSelector Sélecteur pour l’artefact à utiliser pour le déploiement pour les projets multimodèles. Il doit s’agir de
chemin d’accès relatif au module/projet cible.
string
relativePath Chemin relatif du stockage qui stocke la source string
runtimeVersion Version runtime du fichier source string
type Type de la source chargée 'Source' (obligatoire)

TcpScaleRule

Name Description Value
auth Secrets d’authentification pour la règle de mise à l’échelle tcp. ScaleRuleAuth[]
metadata Propriétés de métadonnées pour décrire la règle de mise à l’échelle tcp. TcpScaleRuleMetadata

TcpScaleRuleMetadata

Name Description Value

TCPSocketAction

Name Description Value
type Type de l’action à effectuer pour effectuer le contrôle d’intégrité. 'TCPSocketAction' (obligatoire)

UserSourceInfo

Name Description Value
type Défini sur « BuildResult » pour le type BuildResultUserSourceInfo. Défini sur « Container » pour le type CustomContainerUserSourceInfo. Défini sur « Jar » pour le type JarUploadedUserSourceInfo. Défini sur « NetCoreZip » pour le type NetCoreZipUploadedUserSourceInfo. Défini sur « Source » pour le type SourceUploadedUserSourceInfo. 'BuildResult'
'Container'
'Jar'
'NetCoreZip'
'Source' (obligatoire)
version Version de la source string

Exemples d’utilisation

Échantillons Terraform

Un exemple de base de déploiement de Spring Cloud Deployment.

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    = ["*"]
}

resource "azapi_resource" "deployment" {
  type      = "Microsoft.AppPlatform/Spring/apps/deployments@2023-05-01-preview"
  parent_id = azapi_resource.app.id
  name      = var.resource_name
  body = {
    properties = {
      deploymentSettings = {
        environmentVariables = {
        }
      }
      source = {
        customContainer = {
          args = [
          ]
          command = [
          ]
          containerImage    = "springio/gs-spring-boot-docker"
          languageFramework = ""
          server            = "docker.io"
        }
        type = "Container"
      }
    }
    sku = {
      capacity = 1
      name     = "E0"
      tier     = "Enterprise"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}