如何在运行时检索 WebJob 的名称

How to retrieve a WebJob's name at runtime

我正在寻找最 relevant/robust 的方法来解析当前的网络作业名称。我在函数执行时和主机启动时都需要它,以便在我的内部逻辑中进行注册。

Webjob 名称已在 Properties\webjob-publish-settings.json 中定义,但未部署此文件。我不能再在运行时使用它了。

Webjob 二进制文件都存储在根据 webjob 名称命名的专用文件夹中。这看起来是解决我的问题的最佳方法。 但是在查看 the SDK and this issue 之后,我不确定这个解决方案是否会被未来的更新破坏。
目前,SDK 正在通过 WebSitesKnownKeyNames class 中定义的内部环境变量 WEBJOBS_NAME 检索网络作业名称。如果它是一个安全的解决方案,为什么 SDK 依赖于此而不是文件夹名称?
此外,链接的问题指出不支持重命名 webjob 文件夹以重命名 webjob 本身,并且正在制定适当的解决方案。

你们中有人遇到过这个问题并成功解决了吗?

只需使用 WEBJOBS_NAME 环境变量 - 这是最简单和最可靠的。 WebJobs SDK 出于这个原因使用它,环境变量也将 SDK 与底层核心 Kudu WebJobs 实现细节(如文件夹结构等)的细节分离。正如您在 Kudu 代码 here 中看到的那样,它设置了这个环境运行 作业之前的变量。所以可以放心使用。

您链接到的关于重命名的 issue 是特定于 Azure Functions 的。您似乎没有使用 Azure Functions。