如何解决免费套餐中的“未购买或授予托管并行性”?

我刚刚开始使用 Azure DevOps 管道,并且刚刚使用 Maven 任务创建了一个非常简单的管道。现在我不关心并行性,我不确定我以哪种方式将它添加到我的管道中。有没有办法在没有并行性的情况下在免费层上使用 Maven 任务?

这是我的管道:

 trigger:
 - master

 pool:
   vmImage: ubuntu-latest

 steps:
 - task: Maven@3

我的想法是任务总是并行的?除此之外,我看不到并行步骤在哪里。

stack overflow How to resolve "No hosted parallelism has been purchased or granted" in free tier?
原文答案
author avatar

接受的答案

首先 - 任务总是按顺序执行。并且 1 个顺序管道被记录为“1 个并行代理”,是的命名可能会更好。由于下面列出的更改,新帐户现在获得 个并行代理,并且必须手动请求才能获得以前默认的 1 个并行管道和免费构建分钟数。

参见 this

我们暂时禁止免费授予公共项目和新组织中的某些私人项目的并行工作。但是,您可以通过提交 a request 来请求此授权。现有组织和项目不受影响。请注意,我们需要 2-3 个工作日来回复您的免费套餐请求。

有关这些限制为何起作用的更多背景信息:

TLDR;人们正在使用自动化来启动 1000 多个 Azure DevOps 组织,添加管道并使用该服务发送垃圾邮件、挖掘比特币或用于其他邪恶目的。事实上,他们可以自由、快速且无需任何人工干预,这对团队来说是一个负担。恶意行为的自动检测被证明是困难的,并变成了一场没完没了的猫捉老鼠游戏。手动步骤是制止这种滥用的必要之恶,绝不意味着朝着进一步货币化服务迈出一步。这实际上是为了确保免费层仍然可以提供给像你我这样的真正的人,


答案:

作者头像

这是荒谬的。除非您再次请求,否则“免费套餐”并非完全免费!

最佳选择: 使用自托管池。它可以是您想要运行测试的笔记本电脑。

MS 天蓝色文档 here

enter image description here

并在 YAML 文件中使用上述池

pool: MyPool

或者

请求访问 MS:

伙计们,您可以请求 here 。通常它会在一两天内获得批准。

##[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request
作者头像

如果您使用的是与Gatekeeper的MacOS最新版本,那么这种“安全增强”是一个严重的PITA,因为您会遇到100次错误,在这些错误中,必须手动允许每个被拒绝的组件进行安全安全。

不要那样做。

从DevOps下载代理文件并在解压缩文件之前,请在其上运行此命令。这将删除触发错误的属性,并允许您继续不间断。

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

这是您需要运行的所有步骤,包括上述步骤,以便您可以在等待授权或完全跳过时立即经过“托管并行性”问题并立即继续进行测试。

1.转到项目设置 - >代理池

2.创建新的代理池,称其为“本地”(无论您想要什么,都可以调用它,或者您也可以在默认代理池中执行此操作)

3.添加一个新代理,并按照说明进行操作,其中包括为您的操作系统下载代理(MACOS此处)。

4.在下载的文件上运行 xattr -c vsts-agent-osx-x64-V.v.v.tar.gz 以删除Gatekeeper安全问题。

5.用 tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz 解开档案

  1. cd 到存档目录中,键入 ./config.sh 这里最重要的配置选项是服务器URL,其余的将为 https://dev.azure.com/{organization name} 默认值。继续直到您回到命令提示符。在这一点上,如果您要在新代理池中查看DevOps或默认值(根据您放置的位置),您将把新代理视为“离线”,请运行:

  2. ./run.sh 将使您的代理在线。您的代理人现在正在运行和聆听以开始工作。请注意,这将绑定您的终端窗口。

8.最后,在您的管道中,yaml文件通过指定自托管代理所居住的代理池的名称来配置您的作业以使用本地代理,例如:

    trigger:
    - main

    pool:
      name: local
    #pool:
    #  vmImage: ubuntu-latest