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
- 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
ouVerify your unity package integrity
), vérifiez que vous n’avez pas de sources de package non valides dans votre configuration NuGet globale (sousC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
ou répertoire de configuration NuGet par défaut configuré sur l’ordinateur). - 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. - 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
- 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.
- S’il existe d’autres erreurs, consultez cette page pour obtenir des informations de dépannage supplémentaires sur des erreurs particulières.
- 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.
- 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
- Vérifiez que la scène est lue comme prévu lorsque vous l’affichez en préversion localement dans Unity.
- Vérifiez que l’environnement déployé correspond à scene.map utilisé par le service Mesh Cloud Scripting.
- 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. - Rechargez votre environnement avec le chargeur Mesh.
- Dans le projet Unity, accédez au composant Mesh Cloud Scripting , puis appuyez
- 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.
- Si rien n’aide, signalez un bogue.
- Inspectez les journaux de script Cloud Mesh et incluez des informations pertinentes dans le cas où cela est possible dans votre rapport de bogues.
Les clics ne sont pas reçus
- 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.
- 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.
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
.
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.
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 .
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.
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.
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.
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")
Exportez des données vers csv.
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.
Ouvrez le portail Azure et accédez à la ressource AppService dans laquelle votre service Mesh Cloud Scripting est en cours d’exécution.
Cliquez sur l’onglet « Surveillance » et faites défiler jusqu’au bas de la page. Cliquez sur le bouton « Configurer Azure Monitor »
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.
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é.
Activez Application Insights à partir de la page App Service. Cela garantit que les journaux sont propagés à l’espace de travail Log Analytics.
Renseignez le formulaire et veillez à le pointer vers le même espace de travail dans lequel votre paramètre de diagnostic a été créé.
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
Dans l’onglet Créer un environnement du chargeur mesh, notez les valeurs ID d’abonnement et groupe de ressources que vous avez choisies.
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.
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.
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
- Collectez tous les journaux disponibles.
- Suivez les conseils de commentaires .