【问题标题】:Copy files into Azure App Service将文件复制到 Azure 应用服务
【发布时间】:2018-06-04 07:31:08
【问题描述】:

我正在开发一个网站,该网站将部署到各种环境 - 开发、UAT 和生产环境 - 每个环境都有通过使用配置文件定义的不同配置设置。

部署过程包括两个步骤:

  1. 发布最新的构建输出
  2. 复制默认配置文件并将其替换为部署完成后特定于环境的配置文件(这些文件当前受源代码控制)

我正在尝试使用 VSTS 和 Azure 应用服务来自动化部署过程,但我找不到任何可以让我将文件复制到应用服务中的任务或选项。

实施此部署过程的最佳方式是什么?

【问题讨论】:

标签: asp.net-mvc azure continuous-deployment azure-web-app-service


【解决方案1】:

您可以通过对您的 web.config 文件使用配置转换来简化此操作。

基本上,请确保您已为每个环境定义了构建配置。调试和发布是为 Visual Studio MVC 项目开箱即用地定义的。您可以根据需要添加任意数量的配置,例如 UAT 配置。

定义好配置后,请确保在 Visual Studio 解决方案资源管理器中的 web.config 下方有 web.[your build config].config 文件。在每个构建配置特定的转换文件中,您可以根据需要覆盖设置。

要结束循环,您可以在 VSTS 中创建构建时指定构建配置作为目标。这将自动为您选择的构建配置执行转换。

有关构建配置和 web.config 转换的更多详细信息here

或者,您可以直接在 Azure Web 应用程序的应用程序设置中指定您的应用程序设置和连接字符串。这些会覆盖您部署的 web.config 文件中的任何内容。我喜欢这种方法的地方在于,您不必向团队中的其他开发人员公开连接字符串等敏感信息,并且它消除了 web.config 转换的次要复杂性。

【讨论】:

  • 发布配置是我们迄今为止一直在使用的。不利的一面是,如果您想在不同的环境上发布,则需要重新构建整个应用程序,这正是我只想在部署期间应用环境特定配置文件的原因。
  • 啊,有道理。选项 #2 怎么样,您可以直接在每个环境的 Web 应用实例的应用程序设置中定义 appSettings 和 connectionStrings?然后,您只需发布而无需重新构建和中提琴!
  • 我将探索该功能,但我怀疑这还不够。我们使用具有大量自定义 web.config 文件的框架和 cms,因此不幸的是,这不仅仅是连接字符串和应用程序设置的问题。另外,我认为如果我们可以将环境设置存储在源代码管理中会更好。
  • 是的,我们使用不同的 web.config 设置,我们不想为每个环境多次构建应用程序。我只是希望能够通过一些简单的任务将 web.config 编辑/上传到我的 azure Web 应用服务。我要检查一下 KUDU rest api 是否有任何作用..
  • 看起来我在使用 KUDU rest api 和 powershell 上传 web.config 方面取得了一些成功。从这里得到想法blog.kloud.com.au/2016/08/30/…
【解决方案2】:

Kudu api 让您能够通过覆盖从 azure web 应用上传和下载文件

混帐: https://github.com/projectkudu/kudu/wiki/REST-API

不确定vst是否有这个能力。 我最近做了你对 Jenkins 的描述。现在我正在尝试将 Jenkins 集成到 vsts 希望能给你答案

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 2021-11-23
    • 1970-01-01
    • 2020-05-01
    • 2022-01-12
    • 2017-09-06
    • 2020-08-28
    • 2017-03-06
    • 2020-06-11
    相关资源
    最近更新 更多