2016-04-12 9 views
1

Die neue Vorschau der Azure-Funktion enthält einige Vorlagen für C#. Aber es gibt keine Service-Bus-Warteschlangenvorlage für C#. Es gibt eine Triggervorlage für den Knoten mit Servicebus. Bei näherer Betrachtung wurden jedoch nur Notification Hubs und keine Service Bus Queue unterstützt. Ist es sogar möglich, eine azurblaue Funktion zu schreiben, die nur ausgelöst werden kann, wenn ein Element in der azurblauen Service-Bus-Warteschlange erscheint? Wenn es jetzt nicht möglich ist, wird es in naher Zukunft eine solche Vorlage geben?Wie schreibt man eine azure-Funktion, die ausgelöst werden kann, wenn ein Element mit C# in der azure Service Bus Queue erscheint?

Danke. Raghu/..

+0

Nur ein Vorschlag versuchen Azure LogicApps. Es hat den Servicebusanschluss mit Trigger. – TusharJ

Antwort

3

Update: Die folgenden Schritte und Informationen immer noch halten, aber wir haben jetzt eine "ServiceBusQueueTrigger - C#" Vorlage im Portal leben, so dass die Umgehungsschritte sind nicht mehr erforderlich :)

ServiceBus IS bereits für C# unterstützt, müssen wir nur eine Vorlage dafür hinzufügen (wir werden sehr bald hinzufügen). Im Allgemeinen sind Templates nur Startpunkte - Sie können Templates immer ändern, indem Sie zusätzliche Bindings hinzufügen, oder Sie beginnen mit der leeren Templates und erstellen Ihre eigene Funktion.

Bis wir die Vorlage hochgeladen haben, können Sie diese Arbeit selbst beginnen, indem Sie von C# leere Vorlage starten.

{ 
    "bindings": [ 
    { 
     "type": "serviceBusTrigger", 
     "name": "message", 
     "direction": "in", 
     "queueName": "samples-input", 
     "connection": "myServiceBus" 
    } 
    ] 
} 

Stellen Sie sicher, Ihre Funktion App eine AppSetting passend den Namen des connection Eigenschaft hat, mit Ihren ServiceBus: Zum Beispiel können Sie Bindung Informationen wie die folgenden im Erweiterter Editor auf der Integrieren Registerkarte eingeben Verbindungszeichenfolge Es sieht so aus, als hätten wir momentan Probleme mit der Connection String Picker für ServiceBus (die ebenfalls sehr bald behoben wird), aber Sie können "Function app settings"/"Gehe zu App Service Einstellungen"/"Application Settings" verwenden App-Einstellung. Dann können Sie den entsprechenden Funktionscode verwenden:

using System; 
using Microsoft.Azure.WebJobs.Host; 

public static void Run(string message, TraceWriter log) 
{ 
    log.Verbose($"C# ServiceBus Queue function processed message: {message}"); 
} 

Diese Funktion wird dann aufgerufen werden, wenn neue Nachrichten hinzugefügt werden ServiceBus Warteschlange samples-input.

+0

Ich werde das versuchen. Eine weitere Frage: Wird die Nachricht aus der Warteschlange entfernt? – Rudra

+0

Es hat nicht funktioniert.Hier sind meine Bindungen: { "Bindungen": [ { "queuename": "myrequestqueue", "Verbindung": "myServiceBusConnection", "name": "myQueueItem", "type": "serviceBusTrigger", "Richtung": "in" } ], "disabled": false } Hier ist, wie meine integrieren Registerkarte Info aussieht: Nachricht Parametername: myQueueItem; Verhalten: Auslöser; Name der Warteschlange: myrequestqueue; Service Bus-Verbindung: myServiceBusConnection Hier ist wie App Einstellungen meiner func: Unter Connection Strings Abschnitt: Name: myServiceBusConnection Wert: Endpoint = sb: // .... – Rudra

+0

Die Funktion, die ich oben veröffentlicht funktioniert für mich. Wenn ich eine Nachricht vom Typ "text/plain" einreiße, wird meine Funktion aufgerufen. Funktioniert Ihre Funktion, wenn Sie im Portal Testdaten eingeben und auf die Schaltfläche "Ausführen" klicken? – mathewc

1

Pro https://azure.microsoft.com/en-us/documentation/articles/functions-reference/ gibt es keine Bindung mit dem SB. Der beste Weg, dies zu tun, anstatt etwas zu tun, das (zumindest zufällig) in der Produktgruppe arbeitet, ist das Einreichen Ihrer Idee auf dem UserVoice - https://feedback.azure.com/forums/355860-azure-functions.

+0

Fertig. Falls jemand für diese Funktion abstimmen möchte, gehen Sie bitte hierhin: https://feedback.azure.com/forums/355860-azure-functions/suggestions/13413564-should-support-trigger-for-azure-service-bus- Warteschlange – Rudra

+0

Ich habe das getan. Wenn meine Antwort hilfreich war, markieren Sie sie bitte als Antwort. Vielen Dank! –

+0

ServiceBus wird bereits unterstützt. Siehe meine Antwort unten. – mathewc