我能关闭Azure DevOps管道中的并行作业吗?

5

我是新手,正在学习使用Azure管道。我尝试创建一个部署简单Python应用程序的流水线,但是出现了错误。

未购买或授予托管并行性

据我所知,微软禁用了公共项目和某些新组织的私有项目的免费并行作业授权。但如果我不需要并行作业呢?我只需要让作业一个接一个地运行。我能否关闭并行作业的使用?

我选择了“Python包”模板,并设置了环境变量“python.version”,仅限于版本“3.7”。但这并没有帮助我解决问题。我仍然遇到相同的错误:

未购买或授予托管并行性


你好,欢迎来到SO。在提出另一个问题之前,请考虑进行导览并阅读如何提问部分。 - Diesan Romero
2个回答

2
免费版支持1个并行作业,仅限1个作业。 enter image description here 请查看下面的 Microsoft的并行作业定义-

什么是并行作业? 当您定义一个流水线时,可以将其定义为作业集合。当流水线运行时,您可以运行多个作业作为该流水线的一部分。 每个正在运行的作业会消耗在代理上运行的一个并行作业。 当您的组织没有足够的并行作业可用时,作业会排队并依次运行。

正如您所提到的,微软已经暂时禁用了私有项目。 但是,您可以请求授予免费工作的访问权限。 您需要等待2-3天才能获得访问权限。 要申请公共或私人项目的免费授权,请在此处提交请求

3
如果我理解正确的话,默认选项提供了一个作业,但是这是一个由 Azure 禁用的“并行”作业?如果是这样的话,那么这不会成为免费计划中每个人的障碍吗?如果我们甚至不能控制是否可以打开和关闭它,那么我们不得不经历 2~3 天的电子邮件过程吗? - THIS USER NEEDS HELP

0

免费赠款终止

微软已经停用了对公共项目和某些新组织的私人项目提供并行作业的免费赠款。因为用户滥用(例如加密货币挖矿)免费计算资源。1

您可以通过以下两种方式解决这个问题:

  1. 通过提交https://aka.ms/azpipelines-parallelism-request表单来申请免费赠款。
  2. 创建自托管代理。

申请免费赠款通常需要两到三天的时间。如果您不想等待请求批准,可以创建自己的自托管代理。

创建自托管代理

要创建自托管代理,请转到项目设置,在流水线部分下选择代理池选项。点击添加池按钮并配置代理:

  • 选择池类型为自托管
  • 添加一个描述性的池名称(例如my-personal-computer
  • 勾选管道权限框,这样您就不需要手动授予权限
  • 点击创建按钮

enter image description here

现在,导航到新创建的代理。在右上角,点击新代理按钮。您可以创建Windows、macOS和Linux代理。根据您的计算机选择适当的操作系统,然后按照说明进行操作:
  1. 解压缩档案:下载代理并将其解压缩到文件夹中。

  2. 配置代理:运行配置脚本并选择默认设置:

    • 服务器 URL:复制并粘贴组织 URL,格式如下:https://dev.azure.com/<my-organization-name>
    • 个人访问令牌(PAT):转到“个人访问令牌”选项,在“用户设置”图标下。确保生成的 PAT 具有对代理池的“读取和管理”访问权限 enter image description here
    • 代理池名称:新创建的池是我们这种情况下的my-personal-computer
    • 代理名称:给一个有意义的名称(例如Windows-Agent),或者保持默认值
    • 工作文件夹:按回车键使用默认值
    • 代理作为服务:按回车键使用默认值
  3. 运行代理:执行运行脚本

一旦完成,您可以在代理面板下看到代理正在运行。

enter image description here

自托管代理已连接到Azure DevOps并监听新的作业。
注意:如果在代理配置期间创建服务,则无需手动运行代理。
配置流水线
最后一步是更新流水线以使用最近创建的代理。转到“流水线”并选择您的流水线。点击“编辑”并将部分添加到配置文件中。这是一个azure-pipeline.yml文件示例:
trigger:
- main

pool: my-personal-computer
strategy:
  matrix:
    Python36:
      python.version: '3.6'
    Python37:
      python.version: '3.7'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '$(python.version)'
  displayName: 'Use Python $(python.version)'

- script: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
  displayName: 'Install dependencies'

- script: |
    pip install pytest pytest-azurepipelines
    pytest
  displayName: 'pytest'

它将进入池子并选择一个可用的代理。我们只有一个代理,所以它选择它并在其上运行各种作业。您可以进入自托管代理文件夹,并从_work目录中获取日志。您还可以在Azure DevOps上查看作业的输出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接