YAML Azure Devops: 步骤任务引用无效。任务名称不明确。

4

我正在尝试使用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(task: ae173df0-05de-4ac6-b5cc-853e9f951a33@4 和 task: ae173df0-05de-4ac6-b5cc-853e9f951a33)代替任务名称,但是系统提示该名称无效。我还尝试设置任务的name属性(https://learn.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_。 - Simon Alling
我已经尝试设置任务步骤的名称属性[...]请注意,您已经尝试设置步骤的“名称”属性,而不是任务。它们明显不同 - 步骤使用任务。 - Simon Alling
2个回答

8

因此,497d490f-eea7-4f2b-ab94-48d9c1acdcb1 似乎是 AzureRmWebAppDeployment@4 的标识符。

任务的Github链接在这里。

当你的Azure DevOps组织中存在两个相同名称的任务或扩展时,看起来就会出现该错误。请参阅支持论坛此处此处

我希望您能够使用 - 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在线编辑器中)不喜欢它,但实际运行时可以正常工作。谢谢! - Chris Gelon

0

Eric Smith 在他的回答中提到了检查重复项的能力。您可以通过访问 https://dev.azure.com/{YourOrg}/_settings/extensions 实际上以图形方式检查重复项。在那里,您可以找到有问题的重复任务并将其删除。对我来说,删除我不再使用的任务更容易。在我的情况下,我有一个重复的 AWS S3 上传任务。

删除重复/未使用的任务引用解决了我的问题。我认为这比使用 DevOps 任务的 GUID 更加清晰。


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