【问题标题】:How to retrieve a WebJob's name at runtime如何在运行时检索 WebJob 的名称
【发布时间】:2017-03-17 10:44:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: azure azure-webjobs azure-webjobssdk


    【解决方案1】:

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

    您链接到的关于重命名的 issue 是特定于 Azure Functions 的。你没有使用看起来像的 Azure Functions。

    【讨论】:

    • 感谢您的反馈。我只是想知道为什么 Webjob SDK 在这种情况下将this class 设为内部...
    • 除了限制不必要的公共表面积外,没有其他真正的理由。很少有人需要使用这些。
    • 我没有及时应用您的回复,并被我的 webjob 文件夹名称黑客所咬。由于github.com/projectkudu/kudu/wiki/…,这绝对不是正确的做法。我错过了当前目录实际上还包含一个随机临时文件夹名称的观点。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多