从Visual Studio部署Azure功能插槽部署生产

时间:2018-06-11 06:31:12

标签: visual-studio azure azure-functions azure-deployment-slots

简短:如何在Visual Studio中创建部署插槽与生产插槽的发布配置文件?

很长时间 当您收到Sev1电话时,表示生产已被破坏且您知道在您刚刚向集成部署插槽启动部署之前的几分钟。是的,发生在我身上的事情和我的生活,我都无法解释。

因此,我们为Azure Function应用程序命名了一个名为“Int”的部署插槽。在创建发布配置文件时,我只是使用Visual Studio中的“创建新配置文件”向导并选择“选择现有”Azure应用服务,然后在“Int”部署插槽中钻取。看起来非常直截了当。这样做会导致部署Int AND 生产。这当然是意料之外的,显然是灾难性的。

在我在Azure功能应用程序的“概述”部分找到的Portal中进行了一些挖掘后,会出现“下载发布配置文件”按钮。单击它以生成以及为INT生成两个具有不同用户的单独文件,destinationAppUrls等。两者之间唯一相同的是FTP publishUrl但我假设服务器将基于此路由到相应的根。证书传入。

尽管我有两个独特的发布配置文件,一个用于prod,另一个用于int,但部署其中任何一个都会更新生产和部署插槽。

以下列出了我自己试图解决这些问题但无济于事的事项:

  1. 从Visual Studio中删除了两个发布配置文件,并通过向导重新创建它们。
  2. 从Visual Studio中删除了两个发布配置文件,并通过门户网站下载的配置文件重新创建它们。
  3. 删除了INT发布配置文件,在我们的INT部署槽的门户中创建了一个新的FTP用户,更新了下载的INT配置文件,然后将其导入Visual Studio。 < ==老实说,我认为这是愚蠢的,因为我不认为VS正在使用FTP进行部署。我可能错了。
  4. 确保AutoSwap已关闭。
  5. 使用FTP客户端手动使用发布凭据登录。即使Production和Int有不同的“FTP部署用户”登录为同一位置的任一点,也会结果。 (这最终似乎是问题)
  6. 单击部署位置上的“重置发布配置文件”并重新下载配置文件。
  7. 除了失去我甚至没有丢失的自动交换功能外,我想解决这个问题的一种方法是创建一个完全独立的应用程序,从而迫使它正常工作。如果可能,我真的想避免这种情况。

    在此提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这不应该发生,但如果我不得不猜测,那么两个应用中定义的WEBSITE_CONTENTAZUREFILECONNECTIONSTRINGWEBSITE_CONTENTSHARE必须具有相同的值。前者是存储应用程序内容的存储帐户,后者是该存储帐户中的共享名称。两者共享同一个WEBSITE_CONTENTAZUREFILECONNECTIONSTRING很好,但如果你也分享同一个WEBSITE_CONTENTSHARE,那么你最终会得到你所看到的奇怪行为。

通常,当您通过工具创建功能应用时,它应为每个应用创建一个随机名称的新共享。如果使用ARM模板或其他方法进行部署,并将它们设置为相同,那么您将遇到该行为。