Je viens de créer une fonction App simple avec une fonction qui doit être déclenchée lorsqu'un nouveau message est ajouté à la file d'attente.Déclencheur de file d'attente ServiceBus pour Azure Fonction: Gérer la réclamation est nécessaire pour cette opération
Je l'ai utilisé le "ServiceBusQueueTrigger - C#" modèle pour créer ma fonction de sorte que le code ressemble que:
using System;
using System.Threading.Tasks;
public static void Run(string myQueueItem, TraceWriter log)
{
log.Verbose($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
partir du portail Azure, j'ai eu cette erreur:
Microsoft.ServiceBus: The remote server returned an error: (401) Unauthorized. Manage claim is required for this operation. TrackingId:6e27fe40-f667-4230-9995-d09f2ac67f35_G17,TimeStamp:4/18/2016 10:17:41 PM. System: The remote server returned an error: (401) Unauthorized.
au début, je l'ai mis en place ma chaîne de connexion avec une politique d'accès partagé qui permet seulement d'écouter la file d'attente et a changé à une réclamation Gérer mais je Toujours avoir cette erreur.
Pour résoudre ce problème, je devais établir la connexion avec le RootManageSharedAccessKey qui donnent un accès complet à l'espace de bus de service
Est-ce le comportement normal/désiré? Sera-t-il possible à l'avenir de configurer des chaînes de connexion avec différentes politiques d'accès partagé?
Matthew, quel est le but du paramètre 'accessRights'? en utilisant un webjob, nous n'avons pas besoin de spécifier quoi que ce soit de ce genre pour configurer le trigger du servicebus. – Thomas
Oui, cela existe également dans le SDK de base. 'ServiceBusAttribute' a une propriété' AccessRights' qui peut être configurée. ce paramètre est juste mappage à cela. Nous avons ajouté cela dans la dernière version de WebJobs SDK, parce que les gens voulaient avoir la possibilité d'utiliser des chaînes de connexion avec un accès limité. Auparavant, nous supposions toujours que nous avions 'Manage 'et que nous essayions des opérations qui échouaient. – mathewc
Merci, j'y jetterai un coup d'œil ^^ J'ai remarqué que cela fonctionne uniquement en utilisant une chaîne de connexion qui cible globalement l'espace de noms du servicebus. Si je spécifie une chaîne de connexion qui cible uniquement une file d'attente spécifique, elle échoue. Est-ce quelque chose qui va changer à l'avenir? – Thomas