问:使用 Azure Webjobs 和计划部署 Web 项目时,如何对多个订阅启用非交互式身份验证(通过管理证书)?
全文: 不久前,我们向 Azure/.NET 项目添加了一个 Azure WebJob(已计划)。我们真的很喜欢它的简单性,直到我们尝试部署它,尤其是使用 CI。我们使用 Jenkins “一键式”部署到生产环境。
但是,为了使 WebJobs 与 Web 项目一起发布(尤其是创建 Scheduler),我们需要启用 Non-Interactive Azure Authentication ,这是 WebJobs 带来的一个令人不快的意外。但我们通过将“webjob.props”文件添加到包含管理证书的 WebJob 项目的属性中解决了这个问题。这是代码:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterSetScheduleProperties" AfterTargets="SetScheduleProperties">
<PropertyGroup>
<ManagementCertificate>Here is the cert.</ManagementCertificate>
<SubscriptionId>Here was our production subscription ID</SubscriptionId>
</PropertyGroup>
</Target>
</Project>
现在最后的问题是:我们需要支持从 CI (Jenkins) 到多个订阅的部署。非交互式身份验证应该适用于所有这些。实现这一目标的最简单方法是什么?我找不到关于这个主题的好资源。我正在考虑以某种方式对 webjobs.props 文件进行构建配置特定的转换。但如果可能的话,我想通过更清洁的解决方案来避免这种情况。
最佳答案
部署计划的 WebJob 包含两个不同的部分:
- 将 WebJob 文件部署到 Web 应用
- 设置调度程序
我猜您的问题更多地与#2 相关,而不是与#1 相关。好消息是,还有另一种使用 CRON 表达式来调度 WebJob 的方法,只需将文件部署到您的 Web 应用程序即可实现此功能(因此不需要#2)。您可以找到更多有关它的详细信息in the documentation .
关于azure - 使用Azure Webjobs和计划部署Web项目时如何启用非交互式身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629023/