4 votes

YAML Azure Devops : La référence de la tâche d'étape n'est pas valide. Le nom de la tâche est ambigu

J'essaie d'utiliser la tâche AzureRmWebAppDeployment pour déployer des WebJobs vers un App Service (Azure App service deploy).

Voici le code YAML suivant (tâche : AzureRmWebAppDeployment@4) :

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRm'
    azureSubscription: 'hidden'
    appType: 'webApp'
    WebAppName: 'hidden'
    package: '$(Build.StagingDirectory)\WebJob'

Lorsque j'essaie d'exécuter la construction, il me donne cette erreur :

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

J'ai essayé de remplacer le nom de la tâche par l'un ou l'autre de ces ID (task : ae173df0-05de-4ac6-b5cc-853e9f951a33@4 et task : ae173df0-05de-4ac6-b5cc-853e9f951a33 ont tous deux été essayés), mais il est dit que ce n'est pas un nom valide.

J'ai essayé de définir la propriété du nom de la tâche ( https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#task ) mais qui n'accepte pas les GUIDs :

name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)

Je n'ai pu trouver aucune information en ligne sur la manière de spécifier les identifiants ae173df0-05de-4ac6-b5cc-853e9f951a33 ou 497d490f-eea7-4f2b-ab94-48d9c1acdcb1. Quelqu'un peut-il m'indiquer comment utiliser ces identifiants ?

0 votes

Apparemment, il existe aussi une variante particulièrement déroutante : La référence de la tâche d'étape n'est pas valide. Le nom de la tâche contoso.cool-extension.foobar.Foobar est ambigu. Spécifiez l'un des identificateurs suivants pour résoudre l'ambiguïté : contoso.cool-extension.foobar.Foobar, contoso.cool-extension.foobar.Foobar.

0 votes

"J'ai essayé de définir la propriété name de la tâche [ ]" Notez que vous avez essayé de définir la propriété name de la propriété étape et non la tâche. Elles sont nettement différentes - un pas utilise une tâche.

8voto

Eric Smith Points 1442

Alors 497d490f-eea7-4f2b-ab94-48d9c1acdcb1 semble être l'identifiant de AzureRmWebAppDeployment@4

Github pour la tâche ici.

Il semble que cette erreur puisse se produire lorsque deux tâches \extensions existent dans votre organisation Azure DevOps avec le même nom. Voir les forums de support ici y ici .

J'imagine que vous devriez pouvoir utiliser - task: 497d490f-eea7-4f2b-ab94-48d9c1acdcb1@4 Je ne sais pas pourquoi cela ne fonctionne pas. Je viens d'essayer et il l'a reconnu comme le AzureRmWebAppDeployment tâche. Peut-être que tu devrais réessayer.

De plus, si vous souhaitez voir les tâches qui existent dans votre organisation, vous pouvez utiliser l'API et cliquer sur l'url suivante pour obtenir la liste des tâches. Schéma YAML .

https://dev.azure.com/{organization}/_apis/distributedtask/yamlschema?api-version=5.1 Je vérifierais ici les éventuels doublons.

0 votes

L'autocorrection YAML ne l'apprécie pas (dans l'éditeur en ligne Azure devops), mais elle fonctionne à l'exécution. Merci de votre compréhension.

0voto

Tonny Points 26909

Eric Smith mentionne la possibilité de vérifier les doublons dans sa réponse. Vous pouvez vérifier graphiquement la présence de doublons en se rendant sur https://dev.azure.com/{YourOrg}/_settings/extensions . Vous pouvez y trouver la tâche en double incriminée et la supprimer. Il m'a été plus facile de supprimer la tâche que je n'utilisais plus. Dans mon cas, j'avais une tâche de téléchargement AWS S3 qui était dupliquée.

La suppression de la référence à la tâche dupliquée/inutilisée a résolu mon problème. Je pense que c'est un peu plus propre que d'utiliser le GUID de la tâche DevOps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X