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

时间:2017-03-16 19:05:02

标签: azure azure-webjobs azure-webjobssdk

我正在寻找解决当前webjob名称的最相关/最强大的方法。我需要在功能执行时和主机启动时在内部逻辑中进行注册。

Webjob名称在extension UIImageView{ func transition(toImage: UIImage, withDuration duration: TimeInterval){ UIView.animate(withDuration: duration, animations: { self.alpha = 0 }) { (bool) in UIView.animate(withDuration: duration, animations: { self.image = toImage self.alpha = 1 }, completion: nil) } } } 中定义,但未部署此文件。我不能再在运行时使用它了。

Webjob二进制文件都存储在根据webjob名称命名的专用文件夹中。这看起来是解决我的问题的最佳方式。 但在查看the SDKthis issue后,我不确定此解决方案可能会被未来的更新破坏。
目前,SDK正在通过let transitionToImage = UIImage.init(named: "newImage")! //newImage is the name of the Image Set in xcassets let duration: TimeInterval = 1 //seconds, can also be fractions, i.e. 0.3, 0.5 imageView.transition(toImage: transitionToImage, withDuration: duration) 类中定义的内部环境变量Properties\webjob-publish-settings.json检索webjob名称。如果SDK是安全的解决方案,为什么SDK依赖于此而不是文件夹名称? 此外,链接的问题状态是不支持重命名webjob文件夹以重命名webjob本身,并且正在寻找合适的解决方案。

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

1 个答案:

答案 0 :(得分:3)

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

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