Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à résoudre les scénarios courants dans les applications Planificateur de tâches durables. Recherchez votre scénario dans la liste suivante et suivez les étapes liées pour diagnostiquer et résoudre le problème.
Scénarios courants
- Vérifiez la chaîne de connexion et l'accès à Durable Task Scheduler
- Erreur lors du déploiement de l'application Durable Functions à Azure
- Erreur inconnue lors de la récupération des détails de ce hub de tâches
- Impossible de supprimer la ressource
- Impossible de déterminer le projet à générer
- Impossible de trouver des fichiers binaires natifs pour ARM (Apple silicon)
Note
Les ingénieurs du support technique Microsoft sont disponibles pour diagnostiquer les problèmes liés à votre application. Si vous n'êtes pas en mesure de diagnostiquer votre problème après avoir parcouru cet article, vous pouvez déposer un ticket de support en accédant à la section Help>Support + dépannage de la ressource Planificateur de tâches durables dans le portail Azure.
Vérifier la chaîne de connexion et l'accès au planificateur de tâches durables
Lorsque votre application n’est pas en cours d’exécution comme prévu, vérifiez ce qui suit :
- Le format de la chaîne de connexion est correct.
- L’authentification est configurée correctement.
Développement local
Vérifiez la chaîne de connexion, qui doit avoir ce format :
Endpoint=http://localhost:<port number>;Authentication=None. Vérifiez que le numéro de port est celui mappé sur8080le conteneur exécutant l’émulateur de planificateur de tâches durable.En plus de l’émulateur de planificateur de tâches durable, assurez-vous que l’émulateur de stockage Azure, Azurite, est démarré. Azurite est nécessaire pour les composants de l’application associée à Functions.
En cours d’exécution sur Azure
Vérifiez votre application pour connaître les variables
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGd’environnement etTASKHUB_NAME.Vérifiez la valeur
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. Plus précisément, vérifiez que le point de terminaison du planificateur et le type d’authentification sont corrects. La chaîne de connexion doit être mise en forme comme suit lors de l’utilisation :-
Identité managée affectée par l’utilisateur :
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}oùclient idest l’ID client de l’identité. -
Identité managée affectée par le système :
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Identité managée affectée par l’utilisateur :
Vérifiez que l’autorisation de contrôle d’accès en fonction du rôle (RBAC) requise est accordée à l’identité qui doit accéder au hub de tâches ou au planificateur spécifié.
- Lorsque vous accédez au tableau de bord, vérifiez que l’autorisation est affectée à votre propre identité (e-mail).
Si l’identité managée affectée par l’utilisateur est utilisée, vérifiez que l’identité est affectée à votre application.
Erreur lors du déploiement de l’application Durable Functions sur Azure
Si votre déploiement échoue avec une erreur telle que Encountered an error (ServiceUnavailable) from host runtime de Visual Studio Code, vérifiez d’abord que votre application a bien les variables d'environnement requises correctement définies. Redéployez ensuite votre application. Si vous voyez une erreur de chargement des fonctions, sélectionnez le bouton Actualiser .
Erreur inconnue lors de la récupération des détails de ce hub de tâches
Si vous obtenez une Unknown error retrieving details of this task hub erreur sur le tableau de bord du planificateur de tâches durable, la raison peut être :
Votre identité (e-mail) ne dispose pas de l’autorisation requise pour ce hub de tâches. Suivez les instructions pour accorder l’autorisation, puis accédez à nouveau au tableau de bord.
Votre hub de tâches a été supprimé.
Impossible de supprimer la ressource
Avant de pouvoir supprimer une ressource de planificateur, vous devez d’abord supprimer tous ses hubs de tâches. Si ce n’est pas le cas, vous recevez le message d’erreur suivant :
{
"error": {
"code": "CannotDeleteResource",
"message": "Cannot delete resource while nested resources exist. Some existing nested resource IDs include: 'Microsoft.DurableTask/schedulers/YOUR_SCHEDULER/taskhubs/YOUR_TASKHUB'. Please delete all nested resources before deleting this resource."
}
}
Pour résoudre ce problème, listez les hubs de tâches dans l'ordonnanceur et supprimez-les :
# List all task hubs in the scheduler
az durabletask taskhub list --resource-group RESOURCE_GROUP_NAME --scheduler-name SCHEDULER_NAME
# Delete each task hub
az durabletask taskhub delete --resource-group RESOURCE_GROUP_NAME --scheduler-name SCHEDULER_NAME --name TASKHUB_NAME
Une fois que tous les hubs de tâches sont supprimés, réessayez de supprimer la ressource du planificateur.
Impossible de déterminer le projet à construire
Si, après avoir démarré Azurite, vous rencontrez l’erreur : “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Supprimez les répertoires bin et obj dans votre application.
- Réessayez d’exécuter
func start.
Impossible de trouver des fichiers binaires natifs pour ARM (Apple silicon)
Si vous voyez des erreurs gRPC liées à l’absence de recherche de fichiers binaires natifs pour ARM (par exemple sur un Mac Apple silicon — M1, M2, etc.), ajoutez la solution de contournement suivante à votre extensions.csproj fichier :
- Ajoutez une référence de package à
Contrib.Grpc.Core.M1. - Ajoutez une cible post-build personnalisée qui copie les bibliothèques natives gRPC ARM64 vers le répertoire de sortie correct.
Ajoutez les éléments suivants ItemGroupTarget à votre extensions.csproj:
<!-- Workaround for gRPC issues on ARM (Apple silicon) devices -->
<ItemGroup>
<PackageReference Include="Contrib.Grpc.Core.M1" Version="2.41.0" />
</ItemGroup>
<Target Name="CopyGrpcNativeAssetsToOutDir" AfterTargets="Build">
<ItemGroup>
<NativeAssetToCopy Condition="$([MSBuild]::IsOSPlatform('OSX'))" Include="$(OutDir)runtimes/osx-arm64/native/*"/>
</ItemGroup>
<Copy SourceFiles="@(NativeAssetToCopy)" DestinationFolder="$(OutDir).azurefunctions/runtimes/osx-arm64/native"/>
</Target>