Azure功能-部署槽-影响;“删除目标位置的其他文件”;未经检查

Azure功能-部署槽-影响;“删除目标位置的其他文件”;未经检查,azure,function,deployment,slots,Azure,Function,Deployment,Slots,这可能是一种奇怪的情况。我在这个主题上看到的所有帖子都是另一种方式,他们希望检查“删除其他文件”,但在我的情况下,我希望取消检查,但这会在以后的阶段出现问题。提供一些上下文 我们正在构建大约15到20个Azure函数,作为Dynamics CRM API之上的包装器API。因此,评估的两个选项是 < P> a)在自己的函数应用程序中创建每个函数-这给了我们维护问题(20个URL用于DEV、SIT、UAT、阶段、PRD、训练是一个相当混乱的问题,随着他们的管理身份、应用程序注册等),不考虑这种方法

这可能是一种奇怪的情况。我在这个主题上看到的所有帖子都是另一种方式,他们希望检查“删除其他文件”,但在我的情况下,我希望取消检查,但这会在以后的阶段出现问题。提供一些上下文

我们正在构建大约15到20个Azure函数,作为Dynamics CRM API之上的包装器API。因此,评估的两个选项是

< P> a)在自己的函数应用程序中创建每个函数-这给了我们维护问题(20个URL用于DEV、SIT、UAT、阶段、PRD、训练是一个相当混乱的问题,随着他们的管理身份、应用程序注册等),不考虑这种方法的另一个关键原因是消费计划的热身问题。不太可能所有这些功能都被大量使用,但其中一些功能被大量使用

b) 第二个选项,将所有功能保留在一个大功能应用程序下。这是我们最喜欢的方式,因为它将解决上述大多数问题。然而,我们观察到的问题是——如果我们必须部署一个功能,我们必须等待所有功能都经过测试和批准,然后部署所有功能,即使要求只部署一个功能。从建筑学的角度来看,这完全是一个禁忌

因此,我们采用了一种混合方法-在Visual studio中,我们仍然维护多个功能应用程序项目,但在部署过程中,所有这些功能都将通过使用Web Deploy部署到单个功能应用程序中,并取消选中“删除目标中的其他文件”

现在的问题

在POC期间,这一切对我们来说都非常有效,但是现在,当我们开始在暂存槽中使用管道进行部署时,这就成了我们的问题。比方说,当我们第一次将函数1部署到staging时,将其交换到production中——stage现在有0个函数,prod有1个函数。然后,当我们部署第二个azure功能时,stage现在只有第二个功能,如果我们现在将其与生产进行交换,生产将只获得第二个azure功能,而我们完全错过了生产中的第一个azure功能

从逻辑上讲,我认为这是正确的,但我想知道是否有人可以为解决这一问题提供任何建议


如果需要更多详细信息,请告诉我。

您是否可以通过将所有N个功能部署到应用服务计划而不是消费计划中来避免这些问题?我从来没有真正尝试过。我假设它们都有相同的基本URL。我不认为,你有解决这个问题的办法。第二种选择是合适的。即使在一个普通的Web API/Web应用程序世界中,如果一个控制器发生了更改,您最终也会部署完整的.dll文件。即使在这里也是如此。我不确定你在这里看到的主要问题是什么?如果你只部署一项功能,你是否担心其他所有功能的速度会变慢?@rob,选择消费计划的原因是它的资源动态分配。。这正是我们需要的。据推测,在一天中的某个时间点,负载会很重。我不知道所有的应用程序都有相同的URL部分让我检查一下once@SrikanthAlluri,这更多的是分支策略。您可以为每个环境分别设置一个主分支。例如:主-->用于生产,阶段-->用于QA,开发-->用于开发。我想你已经有了。您的策略(您问题中的选项2)包括一个功能应用程序中的所有功能以及插槽的使用;我没有任何缺点。所以,如果你改变你的分支策略,你就可以走了!