2017-03-16 3 views
0

Ich bin auf der Suche nach dem relevantesten/robustesten Weg, den aktuellen Web-Job-Namen aufzulösen. Ich brauche es sowohl für die Ausführungszeit der Funktion als auch für den Host-Start zu Registrierungszwecken in meiner internen Logik.So rufen Sie den Namen eines WebJobs zur Laufzeit ab

Der Name des Web-Jobs ist in Properties\webjob-publish-settings.json definiert, aber diese Datei wird nicht bereitgestellt. Ich kann es nicht mehr zur Laufzeit verwenden.

Web-Job-Binärdateien werden alle in einem speziellen Ordner gespeichert, der nach dem Namen des Web-Jobs benannt ist. Es schien der beste Weg, um mein Problem zu lösen. Aber nach einem Blick auf the SDK und this issue bin ich mir unsicher, diese Lösung könnte durch ein zukünftiges Update gebrochen werden.
Derzeit ruft das SDK den Web-Job-Namen über eine interne Umgebungsvariable ab, die in der Klasse WebSitesKnownKeyNames definiert ist. Warum verlässt sich das SDK auf diesen anstelle des Ordnernamens, wenn es eine sichere Lösung ist?
Auch das verknüpfte Problem besagt, dass das Umbenennen eines Webjob-Ordners, um den Web-Job selbst umzubenennen, nicht unterstützt wird und eine richtige Lösung auf dem Weg ist.

Hat einer von Ihnen dieses Problem bereits erkannt und erfolgreich gelöst?

Antwort

2

Verwenden Sie einfach die Umgebungsvariable WEBJOBS_NAME - das ist die einfachste und zuverlässigste. Das WebJobs SDK verwendet es aus diesem Grund, auch die Umgebungsvariable entkoppelt das SDK von den Details der zugrunde liegenden Core Kudu WebJobs-Implementierungsdetails wie Ordnerstruktur usw. Wie Sie im Kudu-Code here sehen können, setzt es diese Umgebungsvariable vor dem Ausführen des Job. So ist es sicher zu verwenden.

Die issue, mit der Sie zum Umbenennen verbunden sind, ist Azure Functions specific. Sie verwenden keine Azure-Funktionen, wie es aussieht.

+0

Vielen Dank für Ihr Feedback. Ich frage mich nur, warum das Webjob SDK [diese Klasse] gemacht hat (https://github.com/Azure/azure-webjobs-sdk/blob/663a508e8a851629c26a51e7de3af36629dfd120/src/Microsoft.Azure.WebJobs.Protocols/WebSitesKnownKeyNames.cs#L14) intern in diesem Fall ... – GGirard

+0

Kein wirklicher Grund außer zur Begrenzung der unnötigen öffentlichen Fläche. Es ist wirklich selten, dass jemand diese benutzen muss. – mathewc

+0

Ich habe deine Antwort nicht rechtzeitig übernommen und bin von meinem Hack mit dem Namen des Web-Job-Ordners gebissen worden. Dies ist definitiv nicht der richtige Weg, es zu tun wegen https://github.com/projectkudu/kudu/wiki/WebJobs#webjob -arbeitsverzeichnis Ich habe den Punkt verpasst, dass das aktuelle Verzeichnis tatsächlich auch einen zufälligen temporären Ordnernamen enthält. Danke noch einmal! – GGirard

Verwandte Themen