使用VSTS将ARM模板和源代码部署到Azure环境的企业标准?

时间:2018-03-23 13:36:34

标签: azure azure-devops arm-template

我在使用Azure ARM模板,我为生产环境开发了一些ARM模板,它包括vnet,子网,Web应用程序,API应用程序,存储和数据库等......

我的源代码包含MVC应用程序和Azure API应用程序,并将代码签入VSTS团队存储库。

在VS2017中管理的源代码:

enter image description here

目前,我通过遵循此link在单个版本和发布中创建了源代码的构建和发布以及ARM模板。

在我目前的环境中实施上述过程之后,我的想法很少:

  1. 在VS2017中管理源代码和ARM模板的最佳行业惯例是什么?

  2. 如何知道在指定资源组中部署的ARM模板版本?

  3. 假设某人仅更改了应用程序代码,那么还将ARM模板与修改后的源代码一起部署到azure中。是推荐的方法吗?

  4. 是否建议通过在VSTS中创建单个构建和发布定义来及时部署源代码和ARM模板?

  5. 是否建议在Web应用和API app arm模板中提供应用设置和连接字符串?

  6. 使用VSTS将ARM模板和源代码部署到Azure环境中的企业实现是什么?

1 个答案:

答案 0 :(得分:0)

您可以在同一个构建/发布,简单的工作流程中部署ARM和Web应用程序:

  1. 通过VSTS REST API检查模板文件是否已更新(例如Get a single commit with changed items
  2. 通过Azure PowerShell任务检查Azure中是否存在相关资源(例如Find-AzureRmResourceGet-AzureRmResource
  3. 为step1和step3至Logging Command的结果添加新变量(例如isUpdatedWrite-Host "##vso[task.setvariable variable= isUpdated;]true"
  4. 添加Azure资源组部署任务,然后在“运行此目标”框中选择custom conditions(自定义条件:eq(variables[isUpdated '], 'true'
  5. 添加相应的任务以部署您的网络应用。