问题标签 [azure-deployment-slots]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure 部署槽 - 向槽添加权限
我们有一个 Azure 数据库同步组,它有时需要由应用程序启动 - 例如,用户做了一些需要将数据从一个数据库同步到另一个数据库的事情(通常是添加一个新用户)。
通过将机器的身份 GUID 添加到适当的 SQL Server 角色,我们已授予 Web 应用程序(使用托管服务身份)启动此同步的权限 - 这很有效。
之后,我们在 Staging 和 Prod 服务器上创建了部署槽 - 虽然根站点仍然可以工作,但在部署槽中运行的应用程序会抛出异常,指出它没有启动同步的权限。
我找不到任何文档来获取部署槽(又名 Bar)的对象 ID(实际 GUID)以添加到此语句中:
az role assignment create --role "SQL Server Contributor" --assignee-object-id "Bar" --resource-group Foo
编辑:我没有在插槽上手动设置身份,也没有在根应用程序上 - 我刚刚打开 MSI 并试图发现身份。老实说,如果它能够与根应用程序相同,那就没问题了。
我敏锐地意识到 SQL Server Contributor 是授予 Web 服务器的巨大权限,但它似乎是我可以授予实际有权启动数据库同步的服务器的最低权限。
azure - 如果预热失败,不要交换
我的应用程序有一个部署槽,并且在 web.config 中有此部分:
我已经为插槽打开了自动交换功能。
如果页面返回错误(状态 500),插槽是否仍会交换?
编辑:我不能直接破坏应用程序来测试它,因为我们有一个相当复杂的过程,甚至可以进入部署部分。
azure - 我是否需要在 web.config 中向 ApplicationInitialization 添加端口
我想在 Azure 中进行插槽部署,如果部署成功,它会自动交换插槽。为此,我有一个端点,如果一切正常,则返回 200,如果有任何问题(无响应),则不返回任何内容。
我的 web.config 中有这段代码:
我的应用程序没有在端口 80 上运行。它还会找到应用程序并请求页面吗?
PS.:如果不打开拉取请求并将其合并,我将无法对此进行测试。并且团队更喜欢保持项目历史的整洁。
azure - Azure Devops Pipeline 将一个存储库部署到多个 Azure 服务
我正在尝试创建一个管道以在多个 Azure 服务上部署一个解决方案。
假设我有以下项目的解决方案“TemberSolution”
- FunctionsProject -> 应部署在“AppFunctions”上
- SupportProject -> 应部署在 AKS 容器上
我如何在 devops 管道中实现这一点?
azure - 使用与生产槽相同的配置 URL 对暂存槽进行测试
我部署了一个带有两个插槽的 Angular 应用程序。一个是暂存槽,另一个是生产槽。这个想法是部署到暂存槽,测试并确保一切正常,然后将其与生产槽交换。我目前正在使用 Microsoft ADAL 对用户进行身份验证。有没有办法在暂存槽中使用相同的配置 url、重定向 url 和生产的“应用程序设置”来测试我的网站,还是我必须在配置文件中单独为暂存槽添加暂存槽 url?我的登台插槽网站是https://my-website-staging.azurewebsites.net,我的生产网站是https://my-website.azurewebsites.net。我想通过浏览来复制声明槽中的所有生产内容https://my-website-staging.azurewebsites.net但我也需要配置 adal。那么达到预期结果的最佳方法是什么?
azure-deployment-slots - 使用 Azure 部署槽处理数据库更改
我目前正在为网站配置环境。当我使用 azure 时,我想使用部署槽以确保用户不会有任何停机时间。虽然我了解部署槽的目标,但我很难理解它们在我的情况下如何使用。
基本上,该站点使用的数据库将随着时间的推移而发展。换句话说,我的大多数版本都会改变数据库的架构,我不能确保它总是向后兼容(实际上我可能会删除列或其他东西)。
因此,我想到了两种解决方案。要么两个 DS 将共享同一个数据库,要么它们使用不同的数据库。但是,如果它们共享同一个数据库,则在暂存 DS 中执行部署后,可能是生产开始失败(例如,因为它引用了已删除的列)。所以我不能以这种方式使用DS。
使用两个单独的数据库似乎是一个可行的选择......如果它们是同步的。实际上,如果暂存数据库的数据库仅用于验证部署,则在更新生产 DS 时,我无法将站点交换到此 DS,因为此数据库的数据不会是最新的。因此,我需要确保数据是同步的,但是当登台更新时,这种同步会以某种方式暂停,因为架构将不再相同......
我读过的所有文章都在谈论 DS 而没有真正提到数据库问题,所以我真的不明白它应该如何工作。请给我一些启发?
azure - 管理 Azure WebApp 部署槽和 API 管理器
我有一个通过 Azure AD 保护的 WebApp 托管 API,前面有 API 管理器,这一切都运行良好。我一直在尝试做的是使用部署槽,但当然,这会改变 URL 端点,因此 API Manager 是“未知的”。
当我尝试将暂存槽作为新 API 添加到 API 管理器时,我发现基本 URL 正在被剥离 -staging。
我认为我对此的方法可能是错误的,但我似乎找不到任何关于如何在 API 管理器后面处理 API 插槽的明智做法。这篇文章与同一个问题很接近,但它是关于版本控制而不是插槽。 文章
swap - 如何在 Azure Web App 部署槽中交换数据库?
我知道每个插槽都有自己的配置,但是数据库迁移呢?他们如何申请?假设我通过迁移部署到登台,因此登台数据库得到更新。生产数据库如何更新?以及如何访问代码中的变量?
azure - Web.config 转换和 Azure 应用服务槽交换
据我了解,当我们交换插槽时,我们可以选择保留哪个 appSetting 键值,但是如果暂存插槽获得了不在现有生产插槽 web.config 中的新键值,我们如何映射新键当我们交换插槽时,生产 web.config 转换中的值?
azure - 是否可以通过 Az Cmdlet 以编程方式路由 Slot 流量?
我希望能够通过 powershell 将流量从“生产”插槽路由到 Azure 中的不同插槽。我怎么能不使用 RampUpRules 呢?
我们目前在 Azure 中有一个具有 3 个插槽(生产插槽和 2 个附加插槽)的应用程序,我们希望通过发布管道自动将所有流量路由到这两个插槽之一。
我发现“RampUpRule”可以实现这一点(如代码片段所示),但它是通过基于给定规则的 x-ms-routing-name cookie 来实现的。我也知道可以通过应用服务上的 Deployment Slots UI 完成插槽流量,但希望将其自动化(如果可能的话)。
到目前为止,我自己一直无法找到使用现有 Az cmdlet 的方法 - 所以我想知道是否有人知道这样做的方法。
RampUpRules 实现了我们想要的,但我不确定通过设置的 cookie 完成它是否可以接受。