Partager via


Résolution des problèmes liés aux scripts cloud

Échec du chargement de l’environnement

Si une étape mesh Cloud Scripting pendant le processus mesh Uploader a échoué et que l’erreur indiquée est « Vérifiez les journaux pour plus d’informations », vérifiez que les journaux d’informations sont affichés dans la console Unity. Actuellement, certaines erreurs sont affichées sous forme de journaux d’informations. Cela sera amélioré dans une prochaine version.

Échec de l’installation du package mesh Cloud Scripting

  1. Si vous rencontrez des erreurs liées à l’installation du package ou à l’installation de l’outil .NET (The tool package could not be restored ou Verify your unity package integrity), vérifiez que vous n’avez pas de sources de package non valides dans votre configuration NuGet globale (sous C:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config ou répertoire de configuration NuGet par défaut configuré sur l’ordinateur).
  2. Si vous rencontrez l’erreur lors du package is already installed démarrage du mode Lecture, la sortie du mode lecture et le redémarrage de celui-ci doit atténuer ce problème.
  3. Vérifiez les droits d’accès sur le répertoire Assets\.MeshCloudScripting\.Packages.

Après avoir appuyé sur le bouton Lecture de l’éditeur Unity, rien ne se produit

  1. Vérifiez les journaux Unity pour toutes les erreurs. En particulier, si votre code Mesh Cloud Scripting a une erreur de compilation, vous verrez « Échec de la génération de script cloud » dans votre journal des erreurs. Dans ce cas, ouvrez le fichier csproj pour votre script cloud Mesh et corrigez les erreurs. Si vous générez à partir de Visual Studio, les erreurs s’affichent plus facilement dans la sortie de build.
  2. S’il existe d’autres erreurs, consultez cette page pour obtenir des informations de dépannage supplémentaires sur des erreurs particulières.
  3. S’il n’y a pas d’erreur, il peut y avoir des erreurs d’exécution dans votre code mesh Cloud Scripting. Attachez-vous à votre application avec le débogueur et inspectez la sortie pour toutes les erreurs.
  4. Si rien n’aide, signalez un bogue.

Lors de la jonction d’un événement dans l’application Microsoft Mesh, mesh Cloud Scripting ne fonctionne pas

  1. Vérifiez que la scène est lue comme prévu lorsque vous l’affichez en préversion localement dans Unity.
  2. Vérifiez que l’environnement déployé correspond à scene.map utilisé par le service Mesh Cloud Scripting.
    1. Dans le projet Unity, accédez au composant Mesh Cloud Scripting , puis appuyez Serialize Scene pour forcer la sérialisation du graphe de scène.
    2. Rechargez votre environnement avec le chargeur Mesh.
  3. Testez votre version locale d’Unity sur le service déployé.
    • Vérifiez que les journaux d’activité dans Unity contiennent des erreurs si elles ne fonctionnent pas.
  4. Si rien n’aide, signalez un bogue.

Les clics ne sont pas reçus

  1. Il est possible que votre service Mesh Cloud Scripting envoie des messages à une fréquence trop élevée pour que le système gère. Dans ce cas, votre clic peut être reçu, mais, en raison d’un gros backlog de messages, il faut beaucoup de temps pour que le résultat soit propagé au client. Essayez temporairement de désactiver votre code de mise à jour à haute fréquence pour voir si cela résout le problème. Si c’est le cas, envisagez de passer à des animateurs Unity au lieu de mettre à jour les propriétés à partir de Mesh Cloud Scripting.
  2. Si rien n’aide, signalez un bogue.

Unity se bloque après avoir appuyé sur Play

Si vous passez de Unity à une autre application pendant la lecture de Unity, le service Mesh Cloud Scripting continue à s’exécuter, en envoyant des messages à la file d’attente des messages. Lorsque vous revenez au focus sur Unity, il s’interrompt jusqu’à ce qu’il vide complètement la file d’attente. Si le service Mesh Cloud Scripting effectue de nombreux changements d’état fréquents et/ou si vous avez basculé le focus d’Unity depuis longtemps, Unity peut geler pendant un certain temps pendant que cela se produit.

Comment collecter les journaux

Collecte des journaux Unity

Avant de signaler un problème, définissez Verbosity sur Diagnostic.

Configuration du journal de diagnostic

Reproduisez le problème, puis envoyez les journaux Unity. Vous pouvez trouver le fichier journal à l’aide du menu Unity, qui est stocké par défaut à l’adresse %LOCALAPPDATA%\Unity\Editor\Editor.log.

Collecter les journaux Unity

Collecte des journaux clients à partir de l’application Microsoft Mesh

Configurez les journaux du client PC en créant un fichier sur le Bureau nommé « startup_settings.json » avec le contenu suivant :

{
  "use_startup_settings": true,
  "log_groups": [
    { "name": "CloudScriptingClientSDK", "level": "Debug" },
    { "name": "CloudScriptingUnityRuntime", "level": "Debug" }
  ]
}

Reproduire le problème, puis partager les journaux Unity. Vous trouverez les journaux des applications Microsoft Mesh à l’adresse %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log

Collecte des journaux du serveur

A. Flux de journaux

I. Flux de journal sur le portail Azure

Pour afficher les journaux à partir du service Mesh Cloud Scripting, dans la section Surveillance de la ressource AppService , cliquez sur le menu Flux de journaux pour afficher les journaux à partir du conteneur, comme illustré dans l’image ci-dessous.

Sélection du flux de journal

II. Flux de journaux via Azure CLI

Si Azure CLI est installé sur votre ordinateur local, vous pouvez également mettre fin à ces mêmes journaux d’activité à partir de votre ordinateur local en exécutant la commande suivante dans votre terminal :

az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>

III. Télécharger les journaux sous forme de fichier zip

Vous pouvez également télécharger des fichiers journaux à partir du service d’application hébergé en accédant à Advanced Tools (Kudu). Dans la section « Outils de développement » du volet gauche, recherchez Outils avancés, puis cliquez sur le bouton Accéder .

Outils avancés AppService

Le site web SCM s’ouvre et vous pouvez ensuite télécharger les journaux Docker en tant que fichier Zip, comme indiqué ci-dessous.

Kudu

B. Azure Monitor

Vous pouvez également écrire des requêtes KQL (Langage de requête Kusto) pour sélectionner les journaux d’activité qui vous intéressent particulièrement à partir d’événements, d’intervalles de temps et bien plus encore. Cette opération est automatiquement configurée pour vous si vous avez coché la case « Activer l’analyse des applications » pendant le déploiement. Si ce n’est pas le cas, consultez la section Configuration manuelle d’Azure Monitor pour configurer Azure Monitor pour votre déploiement.

Pour l’utiliser, dans la section Surveillance du volet de navigation, sélectionnez Journaux.

Surveillance d’AppService

Dans le volet Analyse des requêtes, vous pouvez sélectionner les journaux qui vous intéressent. Au moment de l’écriture, nous avons « AppServiceConsoleLogs », « AppServiceHTTPLogs », « AppServiceAppLogs » et « AppServicePlatformLogs ». Pour afficher les journaux à partir du conteneur Docker, vous pouvez trouver les journaux dans « AppServiceAppLogs » et/ou « AppServiceConsoleLogs » plus utiles.

Volet Surveillance Azure

Dans la zone de texte fournie à droite du menu Tables , tapez la requête KQL suivante :

AppServiceConsoleLogs
| extend newLog = iif(
ResultDescription has ": Orleans.LifecycleSubject"
or ResultDescription has ": Orleans.Runtime.Catalog"
or ResultDescription has ": Microsoft.Hosting.Lifetime"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.CloudApplication"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudAppInstance"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Core.NamedPipesCloudScriptingSessionGrain"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Cloud.Middleware.CloudScriptingBridge"
or ResultDescription has "UNOBSERVED EXCEPTION:"
or ResultDescription has ": Microsoft.SceneAppService.SceneAppHub"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Core.NamedPipesCloudScriptingSessionGrain"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudAppInstanceFactory"
or ResultDescription has ": Microsoft.ClientChannel.Hosting.ProcessLifecycleLoggers"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Services.ApplicationWorkDispatcher"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Services.CloudScriptingHostedService"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudScriptingPreparationService"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Cloud.Middleware.CloudAppProcessFactory"
or ResultDescription has ": Microsoft.ClientChannel.Resources.ClientLinkGrain"
, 1, 0)
| sort by TimeGenerated asc
| extend logId = row_cumsum(newLog) 
| summarize ResultDescription=make_list(ResultDescription), TimeGenerated=min(TimeGenerated) by logId
| extend ResultDescription = strcat_array(ResultDescription, "")
| sort by TimeGenerated desc
| project TimeGenerated, ResultDescription
| where not (ResultDescription has "Broadcasting data of size")

Champ d’entrée de supervision Azure

Exportez des données vers csv.

Exportation de supervision Azure

Configuration manuelle pour Azure Monitor (facultatif)

Ignorez si vous avez coché « Activer l’analyse des applications » pendant le déploiement.

Un espace de travail Log Analytics est requis pour cette configuration. Si vous n’avez pas d’espace de travail existant, suivez le guide officiel.

  1. Ouvrez le portail Azure et accédez à la ressource AppService dans laquelle votre service Mesh Cloud Scripting est en cours d’exécution.

  2. Cliquez sur l’onglet « Surveillance » et faites défiler jusqu’au bas de la page. Cliquez sur le bouton « Configurer Azure Monitor »

    Onglet Surveillance d’AppService

  3. Cliquez sur le lien « + Ajouter un paramètre de diagnostic » pour définir les catégories de journaux qui seraient envoyées à votre espace de travail choisi.

    Paramètres de diagnostic

  4. Dans l’invite, renseignez le champ « Nom du paramètre de diagnostic », puis sélectionnez les catégories de journaux qui vous intéressent (exemples : journaux de la console App Service, journaux d’activité des applications App Service), cochez la case à « Envoyer à l’espace de travail Log Analytics », puis sélectionnez votre espace de travail Log Analytics existant préféré.

    Créer un paramètre de diagnostic

  5. Activez Application Insights à partir de la page App Service. Cela garantit que les journaux sont propagés à l’espace de travail Log Analytics. Activer App Insights

  6. Renseignez le formulaire et veillez à le pointer vers le même espace de travail dans lequel votre paramètre de diagnostic a été créé.

    Formulaire App Insights

  7. Redémarrez votre AppService et attendez quelques minutes. Vous devez maintenant être en mesure d’interroger les journaux d’activité dans Azure Monitor, comme décrit dans la section Azure Monitor.

Examen des déploiements de scripts cloud dans Azure

  1. Dans l’onglet Créer un environnement du chargeur mesh, notez les valeurs ID d’abonnement et groupe de ressources que vous avez choisies.

    _______________

  2. Sur le portail Azure et dans votre abonnement sélectionné, accédez au groupe de ressources. Vous pouvez rechercher le nom du groupe de ressources à partir de la barre de recherche ou accéder au service « Groupes de ressources » et y trouver votre groupe de ressources. Vérifiez que vous êtes dans le locataire et l’abonnement appropriés.

  3. Dans le volet « Paramètres » du groupe de ressources, accédez à « Déploiements ». Cela doit contenir une liste de tous les déploiements qui ont été effectués dans le groupe de ressources.

  4. Les déploiements cloud scripting qui vous intéressent sont les suivants :

  • Approvisionnement d’applications : il s’agit de la première exécution du déploiement et est utilisée pour provisionner toutes les ressources de script cloud requises. Il peut être identifié à l’aide d’provisionApp comme filtre dans la fenêtre Déploiements.

  • Paramètres de l’application : cela crée et met à jour les paramètres de l’application web. Il peut être identifié à l’aide de svc-appsettings comme filtre dans la fenêtre Déploiements.

  • Paramètres de l’application intermédiaire : cela crée et met à jour l’emplacement intermédiaire de l’application web. Il peut être identifié à l’aide de svc-staging-appsettings comme filtre dans la fenêtre Déploiements.

  • Déploiement d’application : utilisé pour les modifications d’infrastructure suivantes. Il déploie la dernière version de l’image docker cloudhost sur l’emplacement intermédiaire de l’application web. Cela peut être identifié à l’aide de deployApp comme filtre dans la fenêtre Déploiements.

  • Permutation des emplacements d’application : cela permute les versions de l’image Docker cloudhost présentes dans l’application web et l’application web d’emplacement intermédiaire. Cela peut être identifié à l’aide de deployApp-swap comme filtre dans la fenêtre Déploiements.

    _______________

Pour afficher des détails supplémentaires liés au déploiement, cliquez sur le nom du déploiement. Les détails de l’opération pour chaque type de ressource incluent le message d’erreur lié au déploiement.

_______________

Voici un exemple de déploiement qui n’a pas réussi, y compris la cause de l’échec :

_______________

_______________

Les étapes actionnables suivantes dépendent des messages d’erreur spécifiques.

Comment signaler des problèmes

  1. Collectez tous les journaux disponibles.
  2. Suivez les conseils de commentaires .