Partager via


Types de Runbooks Azure Automation

La fonctionnalité d’automatisation des processus Azure Automation prend en charge plusieurs types de runbooks, conformément à la définition du tableau suivant.

Type Descriptif
PowerShell
(recommandé)
Runbook textuel basé sur les scripts Windows PowerShell. Les versions actuellement prises en charge sont PowerShell 7.4 et PowerShell 5.1. Étant donné que PowerShell 7.1 et PowerShell 7.2 ne sont plus pris en charge par le produit parent PowerShell, nous vous recommandons de créer des runbooks dans la version 7.4 prise en charge à long terme.
Flux de travail PowerShell Runbook textuel basé sur les scripts Windows PowerShell Workflow.
Python
(recommandé)
Runbook textuel basé sur les scripts Python. La version actuellement prise en charge est Python 3.10. Étant donné que Python 2.7 et Python 3.8 ne sont plus pris en charge par python produit parent, nous vous recommandons de créer des runbooks dans Python 3.10.
Graphique Runbook graphique basé sur Windows PowerShell et créé et modifié entièrement dans l'éditeur graphique du portail Azure.
Flux de travail graphique PowerShell Runbook graphique basé sur le workflow Windows PowerShell et créé et modifié entièrement directement dans l'éditeur graphique du portail Azure.

Pour en savoir plus sur l’environnement d’automatisation des processus, consultez Exécution d’un runbook dans Azure Automation.

Remarque

Azure Automation suivra le cycle de vie de support des versions de langage PowerShell et Python conformément aux chronologies publiées par les produits parents, PowerShell et Python, respectivement. Nous vous recommandons d’utiliser des runbooks avec des versions linguistiques prises en charge.

Prenez en compte les considérations suivantes lors de la détermination du type à utiliser pour un runbook particulier :

  • Vous ne pouvez pas convertir des runbooks d'un type graphique à un type texte ou inversement.
  • Il existe des limitations lorsque des runbooks de différents types sont utilisés comme runbooks enfants. Pour plus d’informations, consultez la page Runbooks enfants dans Azure Automation.

Runbooks PowerShell

Les Runbooks PowerShell sont basés sur Windows PowerShell. Vous modifiez directement le code du Runbook à l'aide de l'éditeur de texte du portail Azure. Vous pouvez également utiliser n'importe quel éditeur de texte hors ligne et importer le Runbook dans Azure Automation.

La version de PowerShell est déterminée par la version du runtime spécifiée.

Les mêmes bacs à sable Azure et Runbooks Workers hybrides peuvent exécuter côte à côte plusieurs runbooks PowerShell ciblant différentes versions du runtime.

Remarque

  • Actuellement, la version du runtime PowerShell 7.4 est prise en charge pour les travaux cloud et hybrides dans toutes les régions publiques, à l’exception des clouds Brésil Sud-Est et Gov.
  • Au moment de l’exécution du runbook, si vous sélectionnez Runtime Version7.4, les modules PowerShell ciblant la version du runtime 7.4 sont utilisés et si vous sélectionnez La version du runtime en tant que version 5.1, les modules PowerShell ciblant la version du runtime 5.1 sont utilisés.

Veillez à sélectionner la bonne version de runtime pour les modules.

Par exemple : si vous exécutez un runbook pour un scénario d’automatisation SharePoint dans runtime version7.4, importez le module dans runtime version7.4 ; si vous exécutez un runbook pour un scénario d’automatisation SharePoint dans runtime version5.1, importez le module dans runtime version5.1.

Avantages

  • Implémentez toute la logique complexe avec le code PowerShell sans la complexité supplémentaire de PowerShell Workflow.
  • Démarrez plus rapidement que les runbooks de workflow PowerShell dans la mesure où ils n’ont pas besoin d'être compilés avant l'exécution.
  • Exécutez dans Azure et sur des Runbook Workers hybrides pour Windows et Linux.

Limitations et problèmes connus

Voici les limitations et problèmes connus actuels rencontrés avec les runbooks PowerShell :

Limitations

Remarque

Actuellement, la version du runtime PowerShell 7.4 est prise en charge pour les travaux cloud et hybrides dans toutes les régions publiques, à l’exception des clouds Brésil Sud-Est et Gov.

  • PowerShell 7.4 est disponible uniquement dans l’expérience de l’environnement d'exécution.
  • Pour la version du runtime PowerShell 7.4, les activités de module ne sont pas extraites pour les modules importés. Utilisez l’extension Azure Automation pour VS Code pour simplifier l’expérience de création de runbooks.
  • PowerShell 7.x ne prend pas en charge les workflows. Pour plus d’informations et de détails, consultez PowerShell Workflow.
  • PowerShell 7.x ne prend pas en charge les runbooks signés pour le moment.
  • L’intégration du contrôle de code source ne prend pas en charge PowerShell 7.4. En outre, les runbooks PowerShell 7.4 dans le contrôle de code source sont créés dans le compte Automation en tant que Runtime 5.1.
  • Le module Az 12.3.0 est installé par défaut. La liste complète des modules de composant de la version sélectionnée du module Az s’affiche une fois que la version Az est configurée à nouveau à l’aide du portail Azure ou de l’API.
  • Le module PowerShell 7.4 importé serait validé pendant l’exécution du travail. Vérifiez que toutes les dépendances du module sélectionné sont également importées pour une exécution réussie du travail.
  • Le runbook Azure ne prend pas en charge Start-Job avec -credential.
  • Azure ne prend pas en charge tous les paramètres d’entrée PowerShell. Plus d’informations

Problèmes connus

  • Les Runbooks qui dépendent des chemins d’accès de fichiers internes, tels que C:\modules, peuvent échouer en raison de modifications apportées à l’infrastructure back-end du service. Modifiez le code du runbook pour vous assurer qu’il n’existe aucune dépendance sur les chemins de fichiers internes et utilisez Get-ChildItem pour obtenir les informations de module requises.

  • La cmdlet Get-AzStorageAccount peut échouer avec une erreur : La commande Get-AzStorageAccount a été trouvée dans le module Az.Storage, mais le module n’a pas pu être chargé.

  • L’exécution de scripts enfants à l’aide de .\child-runbook.ps1 n’est pas prise en charge.
    Solution de contournement : utiliser Start-AutomationRunbook (cmdlet interne) ou Start-AzAutomationRunbook (à partir du module Az.Automation) pour démarrer un autre runbook à partir du runbook parent.

  • Lorsque vous utilisez le module ExchangeOnlineManagement version 3.0.0 ou ultérieure, vous pouvez rencontrer des erreurs. Pour résoudre le problème, veillez à charger explicitement des modules PowerShellGet et PackageManagement.

  • Lorsque vous utilisez la cmdlet New-AzAutomationVariable dans le module Az.Automation pour charger une variable de type objet, l’opération ne fonctionne pas comme prévu. Solution de contournement : convertissez l’objet en chaîne JSON à l’aide de la cmdlet ConvertTo-Json, puis chargez la variable avec la chaîne JSON comme valeur. Cette solution de contournement garantit une gestion appropriée de la variable dans l’environnement Azure Automation en tant que chaîne JSON.

    Exemple : créer un objet PowerShell qui a stocké des informations relatives à des machines virtuelles Azure

    azurepowershell
    
    # Retrieve Azure virtual machines with status information for the 'northeurope' region 
    $AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"} 
    
    $VMstopatch = @($AzVM).Id 
    
    # Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch 
    
    # Convert the object to a JSON string 
    $jsonString = $VMstopatch | ConvertTo-Json 
    
    # Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString 
    

Runbooks de workflow PowerShell

Les Runbooks de workflow PowerShell sont des Runbooks texte basés sur un workflow Windows PowerShell. Vous modifiez directement le code du Runbook à l'aide de l'éditeur de texte du portail Azure. Vous pouvez également utiliser n'importe quel éditeur de texte hors ligne et importer le Runbook dans Azure Automation.

Remarque

PowerShell 7.1 (préversion) et PowerShell 7.2 ne prennent pas en charge les runbooks de workflow.

Avantages

  • Implémentez tout type de logique complexe avec le code de workflow PowerShell.
  • Utilisez des points de contrôle pour reprendre l’opération en cas d'erreur.
  • Utilisez un traitement en parallèle pour mener plusieurs actions en parallèle.
  • Peut inclure d'autres runbooks graphiques et des runbooks de workflow PowerShell en tant que runbooks enfants afin de créer des workflows de haut niveau.

Limites

  • Le workflow PowerShell n’est pas pris en charge dans les versions de PowerShell ultérieures à la version 7. Par conséquent, les runbooks obsolètes ne peuvent pas être mis à niveau.
  • Gestion inefficace de l’exécution parallèle par rapport aux versions plus récentes de PowerShell ultérieures à la version 7.
  • Le workflow PowerShell fonctionne en interne à l’aide de plusieurs processus. Par conséquent, les modules disponibles dans un processus peuvent ne pas être disponibles dans un autre, et provoquer des exceptions telles que Commande introuvable.
  • Les runbooks doivent pouvoir gérer la complexité supplémentaire liée au workflow PowerShell, notamment les objets désérialisés.
  • Les runbooks prennent plus de temps à démarrer que les runbooks PowerShell, car il doivent être compilés avant l'exécution.
  • Vous pouvez inclure uniquement des runbooks PowerShell en tant que runbooks enfants à l’aide de l’applet de commande Start-AzAutomationRunbook.
  • Les runbooks ne peuvent pas être exécutés sur un Runbook Worker hybride.

Runbooks Python

Les runbooks Python sont compilés sous Python 3.10. Vous pouvez modifier directement le code du runbook dans le portail Azure à l'aide de l'éditeur de texte. Vous pouvez également utiliser un éditeur de texte hors ligne et importer le runbook dans Azure Automation. Python 2.7 et Python 3.8 ne sont plus pris en charge par le produit parent et il est recommandé de créer des runbooks dans la version du runtime Python 3.10.

Actuellement, la version du runtime Python 3.10 est prise en charge pour les travaux cloud et hybrides dans toutes les régions publiques, à l’exception des clouds Brésil Sud-Est et Gov.

Avantages

Remarque

L’importation d’un package Python peut prendre plusieurs minutes.

  • Utilise les bibliothèques Python robustes.
  • Ils peuvent s’exécuter dans Azure ou sur des runbooks Worker hybrides.
  • Les scripts et les packages de toute version 3.x peuvent fonctionner si le code est compatible entre les différentes versions.
  • Pour les travaux Python 3.10 hybrides sur les machines Windows, vous pouvez choisir d’installer n’importe quelle version 3.x que vous souhaiterez peut-être utiliser.
  • Pour les travaux Hybrides Python 3.10 sur les machines Linux, nous dépendons de la version python 3 installée sur la machine pour exécuter DSC OMSConfig et Linux Hybrid Worker. D’autres versions devraient fonctionner si aucun changement cassant n’est introduit dans les signatures de méthode ou les contrats entre les versions de Python 3.

Limites

Les limitations des runbooks Python sont les suivantes :

  • Pour les modules Python 3.10, seuls les fichiers wheel ciblant le système d'exploitation Linux pour cp310 sont pris en charge. En savoir plus
  • L’intégration du contrôle de code source n’est pas prise en charge.
  • Les packages personnalisés pour Python 3.10 sont validés uniquement pendant l’exécution du travail. Le travail devrait échouer si le package n’est pas compatible dans le runtime ou si les dépendances requises des packages ne sont pas importées dans le compte Automation.
  • Actuellement, les runbooks Python 3.10 ne sont pris en charge qu’à partir du portail Azure et de l’API Rest.

Remarque

L’utilisation d’un webhook pour démarrer un runbook Python n’est pas prise en charge.

Plusieurs versions de Python

Cela s’applique aux travailleurs hybrides de Windows. Pour un Runbook Worker Windows, lors de l’exécution d’un Runbook Python 2, il recherche d’abord la variable d’environnement PYTHON_2_PATH et vérifie si elle pointe vers un fichier exécutable valide. Par exemple, si le dossier d’installation est C:\Python2, il vérifie si C:\Python2\python.exe correspond à un chemin d’accès valide. Si ce n’est pas le cas, il recherche la variable d’environnement PATH pour effectuer une vérification similaire.

Pour Python 3, il recherche d'abord la variable d’environnement PYTHON_3_PATH, puis revient à la variable d’environnement PATH.

Lorsque vous utilisez une seule version de Python, vous pouvez ajouter le chemin d’installation à la variable PATH. Si vous souhaitez utiliser les deux versions sur le Runbook Worker, définissez PYTHON_2_PATH et PYTHON_3_PATH sur l’emplacement du module correspondant à ces versions.

Problèmes connus

Pour les tâches cloud, les travaux Python 3.8 échouent parfois avec un message d’exception invalid interpreter executable path. Vous pouvez voir cette exception si le travail est retardé, démarre en plus de 10 minutes ou utilise Start-AutomationRunbook pour démarrer les runbooks Python 3.8. Si le travail est retardé, le redémarrage du runbook doit être suffisant.

Runbooks graphiques

Vous pouvez créer et modifier des runbooks graphiques de workflow PowerShell avec l’éditeur graphique du portail Azure. Vous ne pouvez cependant ni créer ni modifier ce type de runbook avec un autre outil. Principales fonctionnalités des runbooks graphiques :

  • Ils sont exportés vers des fichiers de votre compte Automation, puis importés dans un autre compte Automation.
  • Générer du code PowerShell.
  • Ils sont convertis vers ou depuis les runbooks PowerShell Workflow graphiques pendant l’importation.

Avantages

  • Utilisation d’un modèle de création visuel insert-link-configure.
  • Concentration sur la circulation des flux de données dans tout le processus.
  • Représentez visuellement les processus de gestion.
  • Inclusion d’autres runbooks en tant que runbooks enfants pour créer des workflows de niveau élevé.
  • Programmation modulaire favorisée.

Limites

  • Impossible de créer ou de modifier en dehors du portail Azure.
  • Peut nécessiter une activité de code contenant du code PowerShell pour exécuter une logique complexe.
  • Impossible d’effectuer une conversion vers l’un des formats de texte ou de convertir un runbook de texte au format graphique.
  • Impossible d'afficher ou de modifier directement du code PowerShell créé par le workflow graphique. Vous pouvez afficher le code créé dans toute activité de code.
  • Impossible d’exécuter des runbooks sur un Runbook Worker hybride Linux. Consultez Automatiser les ressources de votre centre de données ou de votre cloud à l’aide d’un Runbook Worker hybride.
  • Les runbooks graphiques ne peuvent pas être signés numériquement.

Étapes suivantes