azure - 使用Azure Webjobs和计划部署Web项目时如何启用非交互式身份验证?

标签 azure jenkins certificate msdeploy azure-webjobs

问:使用 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 包含两个不同的部分:

  1. 将 WebJob 文件部署到 Web 应用
  2. 设置调度程序

我猜您的问题更多地与#2 相关,而不是与#1 相关。好消息是,还有另一种使用 CRON 表达式来调度 WebJob 的方法,只需将文件部署到您的 Web 应用程序即可实现此功能(因此不需要#2)。您可以找到更多有关它的详细信息in the documentation .

关于azure - 使用Azure Webjobs和计划部署Web项目时如何启用非交互式身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629023/

相关文章:

linux - Jenkins 通过分支 View 构建历史

sql - 开发过程

安卓证书安装

django - 在 Visual Studio Online 上构建 Django

python - 如何使用 Python 触发 Azure Runbook

c# - 在azure函数V2中将TraceWriter替换为ILogger

powershell - Azure AD 模块和 MS Online 模块有什么区别

git - 如何与 Jenkins 持续集成管理数据库

java - 企业 Java Webstart 分发 : use site-wide accepted certificate to sign a code-signing certificate

IOS 应用程序更新有 2 个 iOS 分布式证书,但未安装其私钥