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?
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
Kein wirklicher Grund außer zur Begrenzung der unnötigen öffentlichen Fläche. Es ist wirklich selten, dass jemand diese benutzen muss. – mathewc
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