Ich habe gerade eine einfache Function App mit einer Funktion erstellt, die ausgelöst werden soll, wenn eine neue Nachricht zur Warteschlange hinzugefügt wird.ServiceBus Warteschlange Auslöser für Azure-Funktion: Verwalten Anspruch ist für diesen Vorgang erforderlich
Ich habe die "ServiceBusQueueTrigger - C#" verwendet template-Funktion zu erstellen, so dass der Code so aussieht:
using System;
using System.Threading.Tasks;
public static void Run(string myQueueItem, TraceWriter log)
{
log.Verbose($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
Vom Azure Portal habe ich diesen Fehler habe:
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.
Am Anfang habe ich meine Verbindungszeichenfolge mit einem gemeinsamen Zugriffsrichtlinie einrichten, die ermöglicht, nur in die Warteschlange zu hören und verändern es einen Anspruch verwalten, aber ich habe immer noch diesen Fehler.
Um dies zu beheben, hatte ich die Verbindung mit dem RootManageSharedAccessKey einrichten, die einen vollständigen Zugriff auf den Service-Bus-Namespace geben
Ist es das normal/gewünschte Verhalten? Wird es in Zukunft möglich sein, Verbindungszeichenfolgen mit unterschiedlichen Richtlinien für den gemeinsamen Zugriff einzurichten?
Matthew, was ist der Zweck der 'accessRights' Einstellung? Bei Verwendung eines Webjobs müssen wir zum Konfigurieren des ServiceBus-Triggers nichts dergleichen angeben. – Thomas
Ja, das gibt es auch im Core SDK. 'ServiceBusAttribute' hat eine Eigenschaft' AccessRights', die konfiguriert werden kann. Diese Einstellung wird nur darauf abgebildet. Wir haben das in der letzten Version von WebJobs SDK hinzugefügt, weil die Leute die Möglichkeit haben wollten, Verbindungszeichenfolgen mit eingeschränktem Zugriff zu verwenden. Früher haben wir immer angenommen, wir hätten 'Verwalten' und wir würden Operationen versuchen, die fehlschlagen würden. – mathewc
Vielen Dank, ich werde einen Blick werfen ^^ Ich habe festgestellt, dass dies nur mit einer Verbindungszeichenfolge funktioniert, die den ServiceBus-Namespace global anvisiert. Wenn ich eine Verbindungszeichenfolge angeben, die nur auf eine bestimmte Warteschlange zielt, schlägt sie fehl. Wird sich das in Zukunft ändern? – Thomas