首页 > 解决方案 > 使用 Powershell 创建应用服务或插槽

问题描述

我在 azure devops 上配置我的 CI/CD 管道。我们的主要目的是为每个 Pull Request 自动创建一个环境,以便我们的 QA 团队可以在发送票证进行代码审查之前测试更改。

我有一个天蓝色的构建管道,它在构建完成时触发发布管道。我的发布管道执行以下阶段:

  1. 第 1 阶段:创建应用服务槽
  2. 第 2 阶段:部署到在第 1 阶段创建的应用服务槽

我的问题基于第 2 阶段:

我目前的流程:

我目前正在特定应用服务上创建一个插槽,以便将应用程序部署到该插槽,我的 QA 团队可以在代码审查之前测试此功能。我正在使用 Azure CLI 命令来执行此操作。我遇到了一个问题,需要更改这种方法,因为我不知道每个应用服务有 20 个插槽限制。

我需要做什么:

我需要配置我的发布管道阶段 2 以自动获取具有特定标签的所有应用服务,验证是否已达到插槽限制;如果已达到插槽限制,我需要创建一个新的应用服务,如果尚未达到插槽限制,则我需要创建一个插槽。我一直在网上搜索,显然我可以用 Powershell 完成这个。这是我需要使用 Powershell 完成的步骤:

  1. 获取具有特定标签的应用服务列表
  2. 循环遍历每个应用服务。在每次迭代中,我需要:
    • 获取此特定应用服务的当前插槽数量
    • 如果 slot 数量低于 20,则创建一个新 slot 并中断迭代
    • 如果槽数等于20,继续下一次迭代
    • 如果所有迭代都已经完成并且没有创建槽,我需要创建一个新的应用服务

我们如何使用 Powershell 来实现这一点?我基本上会在我的 azure devops 发布管道中包含这个 powershell。

标签: powershellazure-devopsiaas

解决方案


我知道这可能不是您要找的答案。与使用 PowerShell 相比,您必须处理所有细节,我建议您将管道转移到使用 Azure App Service Deploy 任务 ( https://docs.microsoft.com/en-us/azure/devops /pipelines/tasks/deploy/azure-rm-web-app-deployment?view=azure-devops)。

您需要做的就是在参数中指定要部署到的插槽,无论它是新的还是存在的。


推荐阅读