【问题标题】:How to get the list of variable of release pipelines in Azure devops using Azure CLI如何使用 Azure CLI 在 Azure devops 中获取发布管道的变量列表
【发布时间】:2020-04-20 15:06:55
【问题描述】:

我正在使用 Azure CLI,我想获取发布管道中使用的变量列表。 当前我能够使用命令获取构建管道中使用的变量列表 az 管道变量列表

请告诉我如何使用 CLI“通过我不想要的控制台获取发布管道中使用的变量列表,因为很难复制和粘贴发布管道中使用的所有变量”

【问题讨论】:

  • 目前没有可用的api/command可以返回release变量,最接近的方法是使用定义相关的api/command获取长响应,过滤响应得到你想要的信息。不过这是关于如何过滤json响应的,这是另一个与json/Powershell或什么有关的话题……所以我这里不讲了。
  • 是的,我尝试添加了评论,您现在可以浏览评论,剩下的问题只是如何从 json 中取出变量,感谢您的回复,您可以关闭该问题

标签: azure-devops azure-functions azure-cli


【解决方案1】:

如何在 Azure devops 中获取发布管道的变量列表 使用 Azure CLI

Azure Devops CLI 中没有可用的命令来列出发布管道的变量,您必须使用az devops invoke + rest api 来获取您想要的长响应变量。

要获取发布变量,我们可以使用这个rest api,让我将其转换为az devops invoke 命令:

az devops invoke --org https://dev.azure.com/MyOrgName/ --area release --resource definitions --http-method Get --route-parameters project=MyProjectName definitionId=ReleaseDefinitionID --api-version 5.1 -o json

更多详情:

1.您应该将 MyOrgName、MyProjectName 和 ReleaseDefinitionID 替换为您身边的值。当我们在门户网站中编辑发布管道时,ReleaseDefinitionID 很容易找到:

2.由于发布管道中的变量可以在一个阶段或整个管道中进行作用域。假设我在第一阶段有VarA:Test1,在第二阶段有VarB:Test2,在整个发布管道中有VarC:Test3。响应看起来像这样的结构:

"variables": {
        "VarC": {
            "value": "Test3"
        }
    },
    "variableGroups": [],
    "environments": [
        {
            "id": 1,
            "name": "Stage 1",
            ...
            "variables": {"VarA" xxx},

            "id": 2,
            "name": "Stage 2",
            ...
            "variables": {"VarB" xxx}...

变量有不同的级别,请小心。希望对您有所帮助。

更新1:

要使用az devops 命令,没有此扩展的人需要使用az extension add --name azure-devops 之类的东西添加devops 扩展。

【讨论】:

  • 感谢@Lance Li-MSFT 的快速响应我已经尝试了您的解决方案并获得了您在上面显示的 json 文件,我只需要添加一个步骤是:- 在我的 CLI 中添加扩展 devops使用命令 az extension add --name azure-devops 现在,对于我得到的 json 文件来说,处理起来很混乱而且很大,我的意思是说,我可以通过右键单击获得相同类型的 json 文件azure devops 的网页,其中列出了我的发布变量并选择查看页面源,然后根据我使用 poweshell 脚本在发布管道中创建的阶段过滤该 json 文件
  • @SahilKandroo 感谢您的提示,刚刚将命令 az extension add --name azure-devops 添加到我的答案 Update1 中。并且由于它解决了您关于如何获得响应的原始问题,您可以考虑accepting it as answer。如果您仍然被阻止,请随时告诉我:)
【解决方案2】:

使用以下命令可以实现与@Lance Li-MSFT 描述的几乎相同的输出

az pipelines release definition show --project YourProjectName --id YourReleaseDefinitionId

特定于阶段的变量位于environments 节点中,而全局变量位于variables 节点中。

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多