YAML Azure Devops:步骤任务参考无效。任务名称不明确
Posted
技术标签:
【中文标题】YAML Azure Devops:步骤任务参考无效。任务名称不明确【英文标题】:YAML Azure Devops: Step task reference is invalid. The task name is ambiguous 【发布时间】:2020-05-16 16:51:03 【问题描述】:我正在尝试使用 AzureRmWebAppDeployment 任务将 WebJobs 部署到应用服务(Azure 应用服务部署)。
以下是 YAML 代码(任务:AzureRmWebAppDeployment@4):
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRm'
azureSubscription: 'hidden'
appType: 'webApp'
WebAppName: 'hidden'
package: '$(Build.StagingDirectory)\WebJob'
当我尝试运行构建时,它给了我这个错误:
Job DeployWebJobsCombo1: Step DeployWebJobsCombo1 task reference is invalid. The task name AzureRmWebAppDeployment is ambiguous. Specify one of the following identifiers to resolve the ambiguity: ae173df0-05de-4ac6-b5cc-853e9f951a33, 497d490f-eea7-4f2b-ab94-48d9c1acdcb1
我尝试用其中任何一个 ID 替换任务名称(任务:ae173df0-05de-4ac6-b5cc-853e9f951a33@4 和任务:ae173df0-05de-4ac6-b5cc-853e9f951a33 都已尝试),但它说它不是一个有效的名字。
我已尝试设置任务的名称属性 (https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#task),但它不接受 GUID:
name: string # identifier for this step (A-Z, a-z, 0-9, and underscore)
我无法在网上找到有关如何实际指定标识符 ae173df0-05de-4ac6-b5cc-853e9f951a33 或 497d490f-eea7-4f2b-ab94-48d9c1acdcb1 的任何信息。谁能指点我如何使用这些标识符?
【问题讨论】:
显然,还有这个特别令人困惑的变种:Step 任务引用无效。任务名称 contoso.cool-extension.foobar.Foobar 不明确。指定以下标识符之一来解决歧义:contoso.cool-extension.foobar.Foobar、contoso.cool-extension.foobar.Foobar "我已尝试设置任务的名称属性 […]" 请注意,您已尝试设置 步骤 的name
属性,而不是任务.它们明显不同——一个步骤使用一个任务。
【参考方案1】:
所以497d490f-eea7-4f2b-ab94-48d9c1acdcb1
似乎是AzureRmWebAppDeployment@4
的id
Github for the task 在这里。
当您的 Azure DevOps 组织中存在同名的两个任务\扩展时,似乎会发生该错误。请参阅支持论坛 here 和 here。
我希望您应该能够使用- task: 497d490f-eea7-4f2b-ab94-48d9c1acdcb1@4
不确定为什么它不起作用。我刚试过,它把它识别为AzureRmWebAppDeployment
任务。也许再试一次。
此外,如果您想查看组织中存在的任务,您可以使用 API 并点击此 URL 以获取 YAML Schema。
https://dev.azure.com/organization/_apis/distributedtask/yamlschema?api-version=5.1
我会在这里检查可能的重复项。
【讨论】:
YAML 自动更正不喜欢它(在 Azure devops 在线编辑器中),但它在运行时可以工作。谢谢!以上是关于YAML Azure Devops:步骤任务参考无效。任务名称不明确的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure DevOps 中,与相同的 YAML 管道模板相比,经典编辑器模板中的任务缺失
在 Azure DevOps 中是不是有一种 GUI 方法可以禁用基于 YAML 的管道中的任务?
为啥 SonarQube 不从 yaml 构建更新 Azure DevOps 质量门状态?
如何在 yaml 中处理 Azure DevOps 管道中的错误?