2017-08-19 1 views
2

Ich erstelle eine Funktionsanwendung in Azure und möchte einen Warteschlangentrigger verwenden. Ich weiß, wie den Namen der Warteschlange zur Entwurfszeit konfigurieren, z:Konfigurieren des Warteschlangennamens für Warteschlangenauslöser in der Azure-Funktionsanwendung

[FunctionName("MyTestFunction")] 
 
public static void Run([QueueTrigger("myqueue-items", Connection = "testdelete")]string myQueueItem, TraceWriter log)

Allerdings würde Ich mag, um es in einer Konfigurationsdatei zu definieren und zu verweisen. Ich kenne die Existenz von function.json (Wahrscheinlich dieser), host.json und local.settings.json, aber ich weiß nicht, wie man einen Queue-Namen dort eingibt und es in der Funktion referenziert werden muss .

Wenn ich eine neu erstellte Funktion in Visual Studio (mit dem neuen 15.3 Update) bereitstellen, kann ich Folgendes in der function.json Datei nach der Bereitstellung sehen (obwohl die Datei nicht existiert, wenn ich lokal entwickeln) :

"bindings": [ 
 
    { 
 
     "type": "queueTrigger", 
 
     "queueName": "myqueue-items", 
 
     "connection": "testdelete", 
 
     "name": "myQueueItem" 
 
    }

ich habe festgestellt, dass es die „queuename“, um etwas, das nicht in der eigentlichen Funktion den Wert übereinstimmt, leider nicht, ob ich die Datei zu erstellen, und ändert sich überschreiben Sie es (das wäre zu einfach gewesen, denke ich).

Wie kann ich die Bindungen in der Funktion.json in den Funktionen QueueTrigger-Attribut referenzieren?

Vermutlich, was auch immer die Lösung ist, wird mir erlauben, das gleiche mit der Handhabung der Gift-Warteschlange zu tun?

Der Grund, warum ich dies tun möchte, ist, weil ich mehrere Instanzen der exakt gleichen Funktion bereitstellen muss, aber jedes in einer anderen Warteschlange (um maximale Speicherbeschränkungen zu umgehen).

Danke.

+0

Ich schlage vor, Sie die INameResolver-Schnittstelle implementieren. https://stackoverflow.com/questions/44901165/azure-function-flexible-test-and-production-queue-names – camelCase

Antwort

6

Können Sie nicht einfach den Warteschlangennamen als Einstellung (mit der %settingName%-Syntax) für Ihre App-Funktion referenzieren? Ändern Sie dann in jeder von Ihnen bereitgestellten Funktions-App die Einstellung in den erforderlichen Warteschlangennamen.

[FunctionName("MyTestFunction")] 
public static void Run([QueueTrigger("%MyQueueName%", Connection = "testdelete")]string myQueueItem, TraceWriter log) 

und die Einstellung angeben, in local.settings.json für lokal laufenden

{ 
    "Values: { 
    "MyQueueName": "myqueue-items" 
    } 
} 
+1

Wo finde ich die Dokumentation für% settingName% Syntax? –

Verwandte Themen