pipeline reuse issues

Mouaad AGOURRAM 20 Points de réputation
2024-07-31T00:05:06.7766667+00:00

Hi, I have an issue with reusing the cache from previous steps in my pipeline. I added:

is_deterministic: True in the YAML config for all steps, and set pipeline_job.settings.force_rerun = False.

However, if I encounter an issue in step 7, I have to wait for all steps from 1 to 6 to rerun, which causes a loss of time and money. Is there any way I can fix this?

Azure
Azure
Plateforme et infrastructure de cloud computing pour la génération, le déploiement et la gestion d’applications et de services à travers un réseau mondial de centres de données gérés par Microsoft.
251 questions
{count} votes

Réponse acceptée
  1. Alexis Thorez (CONCENTRIX CORPORATION) 10 180 Points de réputation Fournisseur Microsoft
    2024-08-05T11:48:38.9833333+00:00

    Bonjour Mouaad et merci pour ces précisions:

    Pour déterminer quels scripts ont été modifiés et n’exécuter que les étapes correspondantes, vous pouvez suivre ces étapes :

    • Avant de lancer la pipeline, examinez les scripts que vous avez modifiés. Assurez-vous de connaître les fichiers qui ont été mis à jour.
    • Si vous n’utilisez pas déjà Git ou un autre système de contrôle de version, je vous recommande de le faire. En utilisant Git, vous pouvez facilement voir les différences entre les versions précédentes et actuelles de vos scripts. Cela vous permettra de cibler spécifiquement les fichiers modifiés lors de l’exécution de la pipeline.
    • Dans votre pipeline, spécifiez explicitement les dépendances entre les étapes. Si une étape dépend uniquement d’un ou de quelques scripts, assurez-vous de le déclarer correctement. Ainsi, seules les étapes nécessaires seront exécutées.
    • Vous pouvez ajouter des conditions à vos étapes pour déterminer si elles doivent être exécutées.

    En complément voici deux articles Microsoft qui pourraient vous être utiles:

    A bientôt

    Alexis

    Si cette réponse a répondu à votre question, veuillez « Accepter comme réponse » et voter en utilisant « Pouce levé » afin que la pertinence de ce message s’améliore lorsque quelqu’un dans la communauté recherche une requête similaire

    0 commentaires Aucun commentaire

3 réponses supplémentaires

Trier par : Le plus utile
  1. Mouaad AGOURRAM 20 Points de réputation
    2024-08-02T22:05:07.11+00:00

    Bonjour Alexis,

    Merci pour votre retour, cela m'a beaucoup aidé. Cependant, j'ai remarqué un problème : lorsque je modifie un script et que je lance la pipeline, elle met à jour tous les scripts. De ce fait, à l'exécution, elle considère ces scripts comme nouveaux, change leurs ContentSnapshotId et exécute toutes les étapes.

    Y a-t-il un moyen de déterminer que seuls les scripts modifiés seront mis à jour ?

    0 commentaires Aucun commentaire

  2. Alexis Thorez (CONCENTRIX CORPORATION) 10 180 Points de réputation Fournisseur Microsoft
    2024-07-31T05:40:13.32+00:00

    Bonjour Mourad,

    Merci d'avoir sollicité la communauté Q&A France.

    Pour améliorer le temps de création et éviter la réexécution inutile des étapes, vous pouvez tirer parti de la mise en cache du pipeline dans Azure Pipelines. Voici comment cela fonctionne :

    • Ajoutez une tâche de cache à votre pipeline. Cette tâche restaure le cache en fonction des entrées fournies lors d’une exécution. Si aucun cache n’est trouvé, l’étape se termine et l’étape suivante du travail s’exécute.
    • Une fois que toutes les étapes du travail ont été exécutées avec succès, une étape spéciale « Post-travail : Cache » est automatiquement ajoutée et déclenchée pour chaque étape de « restauration du cache » qui n’a pas été ignorée. Cette étape est responsable de l’enregistrement du cache.

    Concernant la configuration voici les différents points à effectuer et vérifier :

    • Spécifiez le chemin du dossier que vous souhaitez mettre en cache (il peut s’agir d’un chemin absolu ou relatif).
    • Définissez la clé pour identifier le cache que vous souhaitez restaurer ou enregistrer. La clé peut être composée de valeurs de chaîne, de chemins de fichier ou de modèles de fichier.

    N’oubliez pas que les caches sont immuables, ce qui signifie que leur contenu ne peut pas être modifié une fois créés. Pensez également à utiliser des artefacts de pipeline lorsque vous devez partager des fichiers spécifiques entre des tâches et à mettre en cache lorsque vous souhaitez améliorer le temps de génération en réutilisant des fichiers d'exécutions précédentes.

    Enfin voici quelques articles relatifs aux actions proposées qui pourront vous être utiles:

    A bientôt

    Alexis

    Si cette réponse a répondu à votre question, veuillez « Accepter comme réponse » et voter en utilisant « Pouce levé » afin que la pertinence de ce message s’améliore lorsque quelqu’un dans la communauté recherche une requête similaire

    1 personne a trouvé cette réponse utile.

  3. Alexis Thorez (CONCENTRIX CORPORATION) 10 180 Points de réputation Fournisseur Microsoft
    2024-08-01T06:30:11.63+00:00

    Bonjour Mouaad,

    Merci pour ces précisions.

    Voici plusieurs choses à vérifier:

    • Assurez-vous que force_rerun est défini sur False pour chaque étape de votre pipeline. Cela indique à AzureML de ne pas réexécuter l’étape si elle a déjà été exécutée avec succès et que les entrées n’ont pas changé.
    • Spécifiez explicitement les dépendances entre les étapes. Si une étape dépend des sorties d’une étape précédente, assurez-vous de le déclarer correctement dans votre pipeline.
    • Assurez-vous que les sorties des étapes précédentes sont correctement enregistrées et disponibles pour les étapes suivantes. Vous pouvez vérifier cela en consultant les journaux d’exécution de votre pipeline.
    • Si vous modifiez uniquement le code d’une étape, vous pouvez réexécuter sélectivement cette étape sans recommencer toute la pipeline. Utilisez l’interface AzureML Studio ou l’API Python pour réexécuter une seule étape.

    A bientôt

    Alexis

    Si cette réponse a répondu à votre question, veuillez « Accepter comme réponse » et voter en utilisant « Pouce levé » afin que la pertinence de ce message s’améliore lorsque quelqu’un dans la communauté recherche une requête similaire

    1 personne a trouvé cette réponse utile.

Votre réponse

Les réponses peuvent être marquées comme Réponses acceptées par l’auteur de la question, ce qui permet aux utilisateurs de connaître la réponse qui a résolu le problème de l’auteur.