azure - 使用 ARM 更新现有 Web 应用程序部署的最佳实践是什么?

标签 azure deployment msdeploy devops azure-resource-manager

我的公司开发了一个基于 Azure 资源管理器的解决方案,该解决方案部署一组资源(本质上是存储、SQL DB 和 Web 应用程序),并且它已经作为我们为新客户的配置流程实现。

但是,我们现在正在研究执行更新的最佳方法,我们正在考虑的假设之一是拥有一个更新此应用程序的二进制文件的特定模板。

我们的想法是拥有一个单独的模板,其中仅包含 Web 应用程序、应用程序主机和 MSDeploy 资源,该资源获取最新版本的包并将其重新上传到该 Web 应用程序。

我在这个解决方案中看到的唯一问题是能够处理新版本的二进制文件所需的任何配置更改 - 我们不希望用户必须重新输入他们为原始版本放置的任何参数部署(通过“部署到 Azure”按钮完成),因此,任何配置都必须在应用程序内执行 - 计划是使用 Microsoft.WindowsAzure.Management.WebSites 库。

使用 Microsoft.WindowsAzure.Management.WebSites 的主要限制是您只能使用证书或服务主体进行身份验证。理想情况下,我们希望找到一种方法,使更新不需要除您在部署更新时提供的身份验证之外的任何身份验证。

对于这种情况,是否有可遵循的最佳实践建议?

谢谢。

Link to the equivalent discussion on TechNet

最佳答案

只能通过 ARM 模板进行更新。 例如,即使在创建依赖资源本身时,连接字符串也可以自动添加到应用程序设置中。 前任。帐户存储连接字符串。

只有第一次创建网站会花费更多时间,大约 30 秒。

ARM 不会销毁您的 Web 应用程序(如果它们已经存在)。它只会更新。 如果没有任何变化,那么部署速度非常快。

如果您的更改需要新的 Appsettings 参数,您可以在 ARM 中输入它, checkin 您的存储库。 下一次部署将选择并更新 WebApp。

因此无需任何人登录和更新。

关于azure - 使用 ARM 更新现有 Web 应用程序部署的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41268574/

相关文章:

visual-studio-2012 - 为构建服务器自定义 Visual Studio 2012 的 Web 发布管道 (WPP)

azure - 发布符号路径构建步骤期间出现 401 未经授权

powershell - Azure-SSMS-PowerShell

azure - 在逻辑应用程序中获取 Azure 函数的输出时出现问题

c# - 将多个 msi 安装程序合并为一个安装程序

c# - 开发和测试将驻留在 GAC 中的 SDK 的策略

sql - 如何在本地计算机上不安装 SQL 的情况下解决 "MSOLAP.4 Provider is not registered on the local machine"错误?

deployment - 如何在 kubernetes 中设置部署副本的不同环境变量

Azure:如何从 Visual Studio 项目部署子目录?

iis-7 - MSDeploy "Hangs"在 MSDeployPublish 上