powershell - 使用 Powershell 创建应用服务或插槽
问题描述
我在 azure devops 上配置我的 CI/CD 管道。我们的主要目的是为每个 Pull Request 自动创建一个环境,以便我们的 QA 团队可以在发送票证进行代码审查之前测试更改。
我有一个天蓝色的构建管道,它在构建完成时触发发布管道。我的发布管道执行以下阶段:
- 第 1 阶段:创建应用服务槽
- 第 2 阶段:部署到在第 1 阶段创建的应用服务槽
我的问题基于第 2 阶段:
我目前的流程:
我目前正在特定应用服务上创建一个插槽,以便将应用程序部署到该插槽,我的 QA 团队可以在代码审查之前测试此功能。我正在使用 Azure CLI 命令来执行此操作。我遇到了一个问题,需要更改这种方法,因为我不知道每个应用服务有 20 个插槽限制。
我需要做什么:
我需要配置我的发布管道阶段 2 以自动获取具有特定标签的所有应用服务,验证是否已达到插槽限制;如果已达到插槽限制,我需要创建一个新的应用服务,如果尚未达到插槽限制,则我需要创建一个插槽。我一直在网上搜索,显然我可以用 Powershell 完成这个。这是我需要使用 Powershell 完成的步骤:
- 获取具有特定标签的应用服务列表
- 循环遍历每个应用服务。在每次迭代中,我需要:
- 获取此特定应用服务的当前插槽数量
- 如果 slot 数量低于 20,则创建一个新 slot 并中断迭代
- 如果槽数等于20,继续下一次迭代
- 如果所有迭代都已经完成并且没有创建槽,我需要创建一个新的应用服务
我们如何使用 Powershell 来实现这一点?我基本上会在我的 azure devops 发布管道中包含这个 powershell。
解决方案
我知道这可能不是您要找的答案。与使用 PowerShell 相比,您必须处理所有细节,我建议您将管道转移到使用 Azure App Service Deploy 任务 ( https://docs.microsoft.com/en-us/azure/devops /pipelines/tasks/deploy/azure-rm-web-app-deployment?view=azure-devops)。
您需要做的就是在参数中指定要部署到的插槽,无论它是新的还是存在的。
推荐阅读
- javascript - 如何使用 Javascript 从 USB 获取文件
- android - 禁用 ViewPager 中特定区域的滚动
- linux - AWS Workspace Crontab 仅在用户登录时运行
- python - 是否有什么我遗漏的东西,因为在 JupyterLab 中工作时我在 HackerRank 上遇到错误?
- python - 使用 2D 和 3D 数组对数组中的值求和
- php - PHP会话未注销
- python - 在 Azure 计算机视觉中将 PIL 裁剪图像作为流传递
- c++ - 使用 QScintilla 和 Qt/C++ 自定义语法高亮
- ruby-on-rails - 是否可以限制对 ActiveAdmin collection_action 的访问?
- amazon-web-services - 如何列出 S3 存储桶中具有特定标签的文件?