Résolution des erreurs courantes dans des déploiements Azure avec Azure Resource ManagerTroubleshoot common Azure deployment errors with Azure Resource Manager

Cette article décrit certaines erreurs courantes liées au déploiement Azure que vous pouvez rencontrer et fournit des informations pour les résoudre.This article describes some common Azure deployment errors you may encounter, and provides information to resolve the errors. Si vous ne trouvez pas le code d’erreur correspondant à l’erreur de votre déploiement, consultez Rechercher un code d’erreur.If you cannot find the error code for your deployment error, see Find error code.

Codes d’erreurError codes

Code d'erreurError code AtténuationMitigation Plus d’informationsMore information
AccountNameInvalidAccountNameInvalid Suivez les restrictions concernant l’attribution de noms pour les comptes de stockage.Follow naming restrictions for storage accounts. Résoudre les erreurs de nom du compte de stockageResolve storage account name
AccountPropertyCannotBeSetAccountPropertyCannotBeSet Vérifiez les propriétés disponibles du compte de stockage.Check available storage account properties. storageAccountsstorageAccounts
AllocationFailedAllocationFailed Le cluster ou la région n’a pas de ressources disponibles, ou ne prend pas en charge la taille de machine virtuelle demandée.The cluster or region does not have resources available or cannot support the requested VM size. Renouvelez la demande plus tard ou demandez une taille de machine virtuelle différente.Retry the request at a later time, or request a different VM size. Problèmes d’approvisionnement et d’allocation pour Linux, Problèmes d’approvisionnement et d’allocation pour Windows et Résoudre des échecs d’allocationProvisioning and allocation issues for Linux, Provisioning and allocation issues for Windows and Troubleshoot allocation failures
AnotherOperationInProgressAnotherOperationInProgress Attendez que l’opération simultanée soit terminée.Wait for concurrent operation to complete.
AuthorizationFailedAuthorizationFailed Votre compte ou principal du service ne dispose pas de droits d’accès suffisants pour terminer le déploiement.Your account or service principal does not have sufficient access to complete the deployment. Vérifiez le rôle auquel votre compte appartient et son accès dans le cadre du déploiement.Check the role your account belongs to, and its access for the deployment scope. Contrôle d’accès en fonction du rôle AzureAzure Role-Based Access Control
BadRequestBadRequest Vous avez envoyé des valeurs de déploiement qui ne correspondent pas aux valeurs attendues par Resource Manager.You sent deployment values that do not match what is expected by Resource Manager. Vérifiez le message d’état interne pour résoudre plus facilement le problème.Check the inner status message for help with troubleshooting. Référence de modèle et Emplacements pris en chargeTemplate reference and Supported locations
ConflitConflict Vous demandez une opération qui n’est pas autorisée dans l’état actuel de la ressource.You are requesting an operation that is not permitted in the resource's current state. Par exemple, un redimensionnement de disque est autorisé uniquement durant la création ou la libération d’une machine virtuelle.For example, disk resizing is allowed only when creating a VM or when the VM is deallocated.
DeploymentActiveDeploymentActive Attendez le déploiement simultané sur ce groupe de ressources soit terminé.Wait for concurrent deployment to this resource group to complete.
DeploymentFailedDeploymentFailed L’erreur DeploymentFailed est une erreur générale qui ne fournit pas les détails dont vous avez besoin pour résoudre l’erreur.The DeploymentFailed error is a general error that does not provide the details you need to solve the error. Pour en savoir plus, recherchez un code d’erreur dans les détails de l’erreur.Look in the error details for an error code that provides more information. Rechercher un code d’erreurFind error code
DeploymentQuotaExceededDeploymentQuotaExceeded Si vous atteignez la limite des 800 déploiements par groupe de ressources, supprimez les déploiements inutiles dans l’historique.If you reach the limit of 800 deployments per resource group, delete deployments from the history that are no longer needed. Vous pouvez supprimer des entrées de l’historique avec la commande az group deployment delete dans Azure CLI ou la commande Remove-AzureRmResourceGroupDeployment dans PowerShell.You can delete entries from the history with az group deployment delete for Azure CLI, or Remove-AzureRmResourceGroupDeployment in PowerShell. La suppression d’une entrée à partir de l’historique des déploiements n’affecte pas les ressources de déploiement.Deleting an entry from the deployment history does not affect the deploy resources.
DnsRecordInUseDnsRecordInUse Le nom de l’enregistrement DNS doit être unique.The DNS record name must be unique. Indiquez un autre nom ou modifiez l’enregistrement existant.Either provide a different name, or modify the existing record.
ImageNotFoundImageNotFound Vérifiez les paramètres d’image de machine virtuelle.Check VM image settings.
InUseSubnetCannotBeDeletedInUseSubnetCannotBeDeleted Vous pouvez rencontrer cette erreur quand vous tentez de mettre à jour une ressource, mais que la requête est traitée en supprimant et en créant la ressource.You may encounter this error when attempting to update a resource, but the request is processed by deleting and creating the resource. Veillez à spécifier toutes les valeurs non modifiées.Make sure to specify all unchanged values. Mettre à jour une ressourceUpdate resource
InvalidAuthenticationTokenTenantInvalidAuthenticationTokenTenant Procurez-vous le jeton d’accès pour le client approprié.Get access token for the appropriate tenant. Vous pouvez uniquement obtenir le jeton auprès du client auquel appartient votre compte.You can only get the token from the tenant that your account belongs to.
InvalidContentLinkInvalidContentLink Vous avez probablement tenté d’établir une liaison avec un modèle imbriqué qui n’est pas disponible.You have most likely attempted to link to a nested template that is not available. Vérifiez l’URI que vous avez indiqué pour le modèle imbriqué.Double check the URI you provided for the nested template. Si le modèle existe dans un compte de stockage, assurez-vous que l’URI est accessible.If the template exists in a storage account, make sure the URI is accessible. Vous devrez peut-être valider un jeton SAS.You may need to pass a SAS token. Modèles liésLinked templates
InvalidParameterInvalidParameter L’une des valeurs que vous avez fournies pour une ressource ne correspond pas à la valeur attendue.One of the values you provided for a resource does not match the expected value. Cette erreur peut être due à de nombreuses conditions différentes.This error can result from many different conditions. Par exemple, il se peut qu’un mot de passe soit insuffisant ou un nom d’objet blob incorrect.For example, a password may be insufficient, or a blob name may be incorrect. Vérifiez le message d’erreur pour déterminer la valeur à corriger.Check the error message to determine which value needs to be corrected.
InvalidRequestContentInvalidRequestContent Vos valeurs de déploiement contiennent des valeurs inattendues ou n’incluent pas les valeurs requises.Your deployment values either include values that are not expected or are missing required values. Vérifiez les valeurs pour votre type de ressource.Confirm the values for your resource type. Référence de modèleTemplate reference
InvalidRequestFormatInvalidRequestFormat Activez l’enregistrement du débogage durant l’exécution du déploiement et vérifiez le contenu de la requête.Enable debug logging when executing the deployment, and verify the contents of the request. Activer l’enregistrement du débogageDebug logging
InvalidResourceNamespaceInvalidResourceNamespace Vérifiez l’espace de noms de ressources que vous avez spécifié dans la propriété type.Check the resource namespace you specified in the type property. Référence de modèleTemplate reference
InvalidResourceReferenceInvalidResourceReference La ressource n’existe pas encore ou n’est pas correctement référencée.The resource either does not yet exist or is incorrectly referenced. Vérifiez si vous devez ajouter une dépendance.Check whether you need to add a dependency. Vérifiez que votre utilisation de la fonction reference inclut les paramètres requis pour votre scénario.Verify that your use of the reference function includes the required parameters for your scenario. Résoudre les erreurs de dépendanceResolve dependencies
InvalidResourceTypeInvalidResourceType Vérifiez le type de ressource que vous avez spécifié dans la propriété type.Check the resource type you specified in the type property. Référence de modèleTemplate reference
InvalidSubscriptionRegistrationStateInvalidSubscriptionRegistrationState Inscrivez votre abonnement auprès du fournisseur de ressources.Register your subscription with the resource provider. Résoudre les erreurs d’inscriptionResolve registration
InvalidTemplateInvalidTemplate Vérifiez que la syntaxe de votre modèle ne contient pas d’erreurs.Check your template syntax for errors. Résoudre les erreurs de modèle non valideResolve invalid template
InvalidTemplateCircularDependencyInvalidTemplateCircularDependency Supprimez les dépendances inutiles.Remove unnecessary dependencies. Résoudre les dépendances circulairesResolve circular dependencies
LinkedAuthorizationFailedLinkedAuthorizationFailed Vérifiez si votre compte appartient au même client que le groupe de ressources que vous déployez.Check if your account belongs to the same tenant as the resource group you are deploying to.
LinkedInvalidPropertyIdLinkedInvalidPropertyId L’ID de ressource pour une ressource particulière n’est pas correctement résolu.The resource ID for a resource is not resolving correctly. Assurez-vous de bien fournir toutes les valeurs requises pour l’ID de ressource, notamment l’ID d’abonnement, le nom du groupe de ressources, le type de ressource, le nom de la ressource parente (si nécessaire) et le nom de la ressource.Check that you provide all required values for the resource ID, including subscription ID, resource group name, resource type, parent resource name (if needed), and resource name.
LocationRequiredLocationRequired Indiquez un emplacement pour votre ressource.Provide a location for your resource. Définir un emplacementSet location
MismatchingResourceSegmentsMismatchingResourceSegments Assurez-vous que la ressource imbriquée a un nombre correct de segments dans le nom et le type.Make sure nested resource has correct number of segments in name and type. Résoudre les segments de la ressourceResolve resource segments
MissingRegistrationForLocationMissingRegistrationForLocation Vérifiez l’état d’inscription du fournisseur de ressources ainsi que les emplacements pris en charge.Check resource provider registration status, and supported locations. Résoudre les erreurs d’inscriptionResolve registration
MissingSubscriptionRegistrationMissingSubscriptionRegistration Inscrivez votre abonnement auprès du fournisseur de ressources.Register your subscription with the resource provider. Résoudre les erreurs d’inscriptionResolve registration
NoRegisteredProviderFoundNoRegisteredProviderFound Vérifier l’état d’inscription du fournisseur de ressources.Check resource provider registration status. Résoudre les erreurs d’inscriptionResolve registration
NotFoundNotFound Vous essayez peut-être de déployer une ressource dépendante en parallèle avec une ressource parente.You may be attempting to deploy a dependent resource in parallel with a parent resource. Vérifiez si vous avez besoin d’ajouter une dépendance.Check if you need to add a dependency. Résoudre les erreurs de dépendanceResolve dependencies
OperationNotAllowedOperationNotAllowed Le déploiement tente une opération qui dépasse le quota autorisé pour l’abonnement, le groupe de ressources ou la région.The deployment is attempting an operation that exceeds the quota for the subscription, resource group, or region. Si possible, modifiez votre déploiement pour respecter les quotas.If possible, revise your deployment to stay within the quotas. Dans le cas contraire, vous pouvez demander une modification de vos quotas.Otherwise, consider requesting a change to your quotas. Résoudre les erreurs de quotaResolve quotas
ParentResourceNotFoundParentResourceNotFound Assurez-vous qu’il existe une ressource parente avant de créer des ressources enfants.Make sure a parent resource exists before creating the child resources. Résoudre les erreurs de ressource parenteResolve parent resource
PrivateIPAddressInReservedRangePrivateIPAddressInReservedRange L’adresse IP spécifiée inclut une plage d’adresses requise par Azure.The specified IP address includes an address range required by Azure. Modifiez l’adresse IP pour éviter d’utiliser la plage réservée.Change IP address to avoid reserved range. Adresses IPIP addresses
PrivateIPAddressNotInSubnetPrivateIPAddressNotInSubnet L’adresse IP spécifiée se trouve en dehors de la plage de sous-réseau.The specified IP address is outside of the subnet range. Modifiez l’adresse IP pour qu’elle se trouve dans la plage de sous-réseau.Change IP address to fall within subnet range. Adresses IPIP addresses
PropertyChangeNotAllowedPropertyChangeNotAllowed Certaines propriétés ne peuvent pas être modifiées sur une ressource déployée.Some properties cannot be changed on a deployed resource. Durant la mise à jour d’une ressource, limitez vos modifications aux propriétés autorisées.When updating a resource, limit your changes to permitted properties. Mettre à jour une ressourceUpdate resource
RequestDisallowedByPolicyRequestDisallowedByPolicy Votre abonnement inclut une stratégie de ressource qui empêche une action que vous tentez d’exécuter au cours du déploiement.Your subscription includes a resource policy that prevents an action you are trying to perform during deployment. Recherchez la stratégie qui bloque l’action.Find the policy that blocks the action. Si possible, modifiez votre déploiement pour respecter les limitations de la stratégie.If possible, modify your deployment to meet the limitations from the policy. Résoudre les erreurs de stratégieResolve policies
ReservedResourceNameReservedResourceName Spécifiez un nom de ressource qui n’inclut pas de nom réservé.Provide a resource name that does not include a reserved name. Noms de ressource réservésReserved resource names
ResourceGroupBeingDeletedResourceGroupBeingDeleted Attendez que la suppression soit terminée.Wait for deletion to complete.
ResourceGroupNotFoundResourceGroupNotFound Vérifiez le nom du groupe de ressources cible pour le déploiement.Check the name of the target resource group for the deployment. Il doit déjà exister dans votre abonnement.It must already exist in your subscription. Vérifiez le contexte de votre abonnement.Check your subscription context. Azure CLI PowerShellAzure CLI PowerShell
ResourceNotFoundResourceNotFound Votre déploiement fait référence à une ressource qui ne peut pas être résolue.Your deployment references a resource that cannot be resolved. Vérifiez que votre utilisation de la fonction reference inclut les paramètres requis pour votre scénario.Verify that your use of the reference function includes the parameters required for your scenario. Résoudre les erreurs de référenceResolve references
ResourceQuotaExceededResourceQuotaExceeded Le déploiement tente de créer des ressources qui dépassent le quota autorisé pour l’abonnement, le groupe de ressources ou la région.The deployment is attempting to create resources that exceed the quota for the subscription, resource group, or region. Si possible, modifiez votre infrastructure pour respecter les quotas.If possible, revise your infrastructure to stay within the quotas. Dans le cas contraire, vous pouvez demander une modification de vos quotas.Otherwise, consider requesting a change to your quotas. Résoudre les erreurs de quotaResolve quotas
SkuNotAvailableSkuNotAvailable Sélectionnez la référence SKU (par exemple, la taille de la machine virtuelle) disponible pour l’emplacement que vous avez sélectionné.Select SKU (such as VM size) that is available for the location you have selected. Résoudre les erreurs de référence SKUResolve SKU
StorageAccountAlreadyExistsStorageAccountAlreadyExists Attribuez un nom unique au compte de stockage.Provide a unique name for the storage account. Résoudre les erreurs de nom du compte de stockageResolve storage account name
StorageAccountAlreadyTakenStorageAccountAlreadyTaken Attribuez un nom unique au compte de stockage.Provide a unique name for the storage account. Résoudre les erreurs de nom du compte de stockageResolve storage account name
StorageAccountNotFoundStorageAccountNotFound Vérifiez l’abonnement, le groupe de ressources et le nom du compte de stockage que vous tentez d’utiliser.Check the subscription, resource group, and name of the storage account you are attempting to use.
SubnetsNotInSameVnetSubnetsNotInSameVnet Une machine virtuelle ne peut avoir qu’un seul réseau virtuel.A virtual machine can only have one virtual network. Si vous déployez plusieurs cartes réseau, assurez-vous qu’elles appartiennent au même réseau virtuel.When deploying multiple NICs, make sure they belong to the same virtual network. Cartes réseau multiplesMultiple NICs
TemplateResourceCircularDependencyTemplateResourceCircularDependency Supprimez les dépendances inutiles.Remove unnecessary dependencies. Résoudre les dépendances circulairesResolve circular dependencies
TooManyTargetResourceGroupsTooManyTargetResourceGroups Réduisez le nombre de groupes de ressources pour un déploiement unique.Reduce number of resource groups for a single deployment. Déploiement de groupes inter-ressourcesCross resource group deployment

Recherche un code d'erreurFind error code

Il existe deux types d’erreurs que vous pouvez rencontrer :There are two types of errors you can receive:

  • des erreurs de validationvalidation errors
  • des erreurs de déploiementdeployment errors

Les erreurs de validation sont liées à des scénarios pouvant être identifiés avant le déploiement.Validation errors arise from scenarios that can be determined before deployment. Elles incluent notamment les erreurs de syntaxe dans votre modèle ou le déploiement de ressources entraînant un dépassement des quotas d’abonnement.They include syntax errors in your template, or trying to deploy resources that would exceed your subscription quotas. Les erreurs de déploiement sont liées aux événements se produisant lors du déploiement.Deployment errors arise from conditions that occur during the deployment process. Elles incluent la tentative d’accès à une ressource qui est déployée en parallèle.They include trying to access a resource that is being deployed in parallel.

Les deux types d’erreurs retournent un code d’erreur qui vous permet de résoudre les problèmes liés au déploiement.Both types of errors return an error code that you use to troubleshoot the deployment. Les deux types d’erreurs apparaissent dans le journal d’activité.Both types of errors appear in the activity log. Toutefois, les erreurs de validation n’apparaissent pas dans l’historique de votre déploiement, car le déploiement n’a jamais démarré.However, validation errors do not appear in your deployment history because the deployment never started.

Erreurs de validationValidation errors

Lors d’un déploiement via le portail, une erreur de validation s’affiche après l’envoi de vos valeurs.When deploying through the portal, you see a validation error after submitting your values.

afficher l’erreur de validation dans le portail

Sélectionnez le message pour obtenir plus d’informations.Select the message for more details. Dans l’image suivante, vous pouvez voir une erreur InvalidTemplateDeployment et un message qui indique qu’une stratégie a bloqué le déploiement.In the following image, you see an InvalidTemplateDeployment error and a message that indicates a policy blocked deployment.

afficher les détails de validation

Erreurs de déploiementDeployment errors

Quand l’opération réussit la validation, mais qu’elle échoue pendant le déploiement, vous recevez une erreur de déploiement.When the operation passes validation, but fails during deployment, you get a deployment error.

Pour voir les codes et les messages d’erreur de déploiement avec PowerShell, utilisez :To see deployment error codes and messages with PowerShell, use:

(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName exampledeployment -ResourceGroupName examplegroup).Properties.statusMessage

Pour voir les codes et les messages d’erreur de déploiement avec Azure CLI, utilisez :To see deployment error codes and messages with Azure CLI, use:

az group deployment operation list --name exampledeployment -g examplegroup --query "[*].properties.statusMessage"

Dans le portail, sélectionnez la notification.In the portal, select the notification.

erreur de notification

Vous voyez plus d’informations sur le déploiement.You see more details about the deployment. Sélectionnez l’option pour rechercher plus d’informations sur l’erreur.Select the option to find more information about the error.

échec du déploiement

Vous voyez le message et les codes d’erreur.You see the error message and error codes. Notez qu’il y a deux codes d’erreur.Notice there are two error codes. Le premier code d’erreur (DeploymentFailed) est un code d’erreur général qui ne fournit pas les détails dont vous avez besoin pour résoudre l’erreur.The first error code (DeploymentFailed) is a general error that doesn't provide the details you need to solve the error. Le deuxième code d’erreur (StorageAccountNotFound) fournit les détails dont vous avez besoin.The second error code (StorageAccountNotFound) provides the details you need.

détails de l’erreur

Activer l’enregistrement du débogageEnable debug logging

Vous avez parfois besoin de plus d’informations sur la demande et la réponse pour connaître la cause du problème.Sometimes you need more information about the request and response to learn what went wrong. Vous pouvez demander la journalisation d’informations supplémentaires lors d’un déploiement.During deployment, you can request that additional information is logged during a deployment.

PowerShellPowerShell

Dans PowerShell, définissez le paramètre DeploymentDebugLogLevel pour All, ResponseContent ou RequestContent.In PowerShell, set the DeploymentDebugLogLevel parameter to All, ResponseContent, or RequestContent.

New-AzureRmResourceGroupDeployment `
  -Name exampledeployment `
  -ResourceGroupName examplegroup `
  -TemplateFile c:\Azure\Templates\storage.json `
  -DeploymentDebugLogLevel All

Examinez le contenu de la requête avec l’applet de commande suivant :Examine the request content with the following cmdlet:

(Get-AzureRmResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).Properties.request `
| ConvertTo-Json

Ou examinez la réponse avec :Or, the response content with:

(Get-AzureRmResourceGroupDeploymentOperation `
-DeploymentName exampledeployment `
-ResourceGroupName examplegroup).Properties.response `
| ConvertTo-Json

Ces informations peuvent vous aider à déterminer si une valeur dans le modèle n’est pas définie correctement.This information can help you determine whether a value in the template is being incorrectly set.

Azure CLIAzure CLI

Actuellement, Azure CLI ne prend pas en charge l’activation de la journalisation du débogage, mais vous pouvez récupérer la journalisation du débogage.Currently, Azure CLI doesn't support turning on debug logging, but you can retrieve debug logging.

Examinez les opérations de déploiement avec la commande suivante :Examine the deployment operations with the following command:

az group deployment operation list \
  --resource-group examplegroup \
  --name exampledeployment

Examinez le contenu de la demande avec la commande suivante :Examine the request content with the following command:

az group deployment operation list \
  --name exampledeployment \
  -g examplegroup \
  --query [].properties.request

Examinez le contenu de la réponse avec la commande suivante :Examine the response content with the following command:

az group deployment operation list \
  --name exampledeployment \
  -g examplegroup \
  --query [].properties.response

Modèle imbriquéNested template

Pour enregistrer les informations de débogage pour un modèle imbriqué, utilisez l’élément debugSetting.To log debug information for a nested template, use the debugSetting element.

{
    "apiVersion": "2016-09-01",
    "name": "nestedTemplate",
    "type": "Microsoft.Resources/deployments",
    "properties": {
        "mode": "Incremental",
        "templateLink": {
            "uri": "{template-uri}",
            "contentVersion": "1.0.0.0"
        },
        "debugSetting": {
           "detailLevel": "requestContent, responseContent"
        }
    }
}

Création d’un modèle de résolution des problèmesCreate a troubleshooting template

Dans certains cas, le moyen le plus simple pour résoudre les problèmes de votre modèle consiste à tester des parties de celui-ci.In some cases, the easiest way to troubleshoot your template is to test parts of it. Vous pouvez créer un modèle simplifié qui vous permet de vous concentrer sur la partie que vous pensez erronée.You can create a simplified template that enables you to focus on the part that you believe is causing the error. Par exemple, supposons que vous recevez une erreur lorsque vous référencez une ressource.For example, suppose you are receiving an error when referencing a resource. Au lieu de traiter un modèle complet, créez un modèle retournant la partie qui peut être à l’origine de votre problème.Rather than dealing with an entire template, create a template that returns the part that may be causing your problem. Il peut vous aider à déterminer si vous transmettez les paramètres appropriés à l’aide de fonctions de modèle et si vous obtenez la ressource que vous attendez.It can help you determine whether you are passing in the right parameters, using template functions correctly, and getting the resource you expect.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
        "type": "string"
    },
    "storageResourceGroup": {
        "type": "string"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "exampleOutput": {
        "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-05-01')]",
        "type" : "object"
    }
  }
}

Si vous rencontrez des erreurs de déploiement que vous pensez liées à une mauvaise définition des dépendances,Or, suppose you are encountering deployment errors that you believe are related to incorrectly set dependencies. vous pouvez tester votre modèle en le divisant en modèles plus simples.Test your template by breaking it into simplified templates. Commencez par créer un modèle déployant une seule ressource (comme un serveur SQL Server).First, create a template that deploys only a single resource (like a SQL Server). Lorsque vous êtes sûr que cette ressource est correctement définie, ajoutez une ressource qui en dépend (par exemple une base de données SQL).When you are sure you have that resource correctly defined, add a resource that depends on it (like a SQL Database). Une fois ces deux ressources correctement définies, ajoutez les autres ressources dépendantes (telles que les stratégies d’audit).When you have those two resources correctly defined, add other dependent resources (like auditing policies). Supprimez le groupe de ressources entre chaque déploiement de test afin de tester correctement les dépendances.In between each test deployment, delete the resource group to make sure you adequately testing the dependencies.

Étapes suivantesNext steps