La gestion et la documentation des groupes de ressources Azure (RG) dans des environnements à grande échelle peuvent prendre du temps et être compliquées. Mais et si vous pouviez automatiser le processus de génération de documentation qui explique non seulement quelles ressources existent, mais aussi comment elles sont liées les unes aux autres ?
Dans cet article, nous explorerons comment un script Python simple peut exploiter les LLM (Large Language Models) comme OpenAI ou Azure OpenAI pour automatiser la création d'une documentation complète de démarques à partir de modèles ARM. Ce qui rend cet outil puissant n'est pas l'utilisation de frameworks d'agents complexes ou d'infrastructures lourdes, mais du Python pur combiné à des outils bien établis comme Azure CLI et l'API d'OpenAI. Il peut même être utilisé avec d'autres fournisseurs d'IA et des LLM locaux utilisant Ollama ou d'autres outils similaires.
Une idée fausse courante est que vous avez besoin de cadres d'agents élaborés pour exploiter efficacement la puissance des LLM. En réalité, vous pouvez réaliser des flux de travail puissants et automatisés à l’aide d’outils existants et de scripts simples. Dans cette solution, nous combinons :
Le résultat ? Un script propre et efficace qui crée de la documentation sans avoir besoin d'outils compliqués ni d'orchestration basée sur l'IA.
Le code source est disponible dans ce dépôt Github : itlackey/azure-assistants. Actuellement, il contient un seul script Python qui exploite Azure CLI et l'API OpenAI pour générer une documentation de démarque à partir de modèles ARM. S'il y a un intérêt ou si j'ai un besoin, le référentiel peut être mis à jour avec des outils et des scripts supplémentaires pour automatiser d'autres tâches.
Le cœur de cet outil est le script document_resource_groups.py. Il fait ces quatre choses :
La première étape consiste à récupérer tous les groupes de ressources de votre abonnement Azure. Cela se fait à l’aide de la commande az CLI de notre script Python. Nous les parcourons ensuite pour récupérer le modèle ARM.
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
Encore une fois, à l'aide d'Azure CLI, le script récupère les modèles ARM pour chaque groupe de ressources dans l'abonnement actuel. Ces modèles contiennent des informations de configuration détaillées pour toutes les ressources, y compris leurs paramètres de réseau et de sécurité.
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
Ensuite, le script envoie le modèle ARM à OpenAI (ou Azure OpenAI) pour résumé. C'est ici que la magie opère. Au lieu de plonger dans des flux de travail complexes d'agent, un simple message système et une invite utilisateur fournissent suffisamment de contexte au LLM pour générer une documentation pertinente.
response = client.chat.completions.create(model=model, messages=messages)
L'invite fournit un modèle de sortie attendu et demande au LLM de :
Cela permet au LLM de produire une documentation structurée et facile à lire sans avoir besoin d'une orchestration sophistiquée.
La dernière étape consiste à générer un fichier de démarque contenant les détails du groupe de ressources. Le contenu inclut des métadonnées telles que le nom du groupe de ressources, la date et les balises. La documentation générée par l'IA est ensuite ajoutée comme contenu du document.
front_matter = f"---\n" front_matter += f'title: "{resource_group_name}"\n' front_matter += f"date: {date}\n" front_matter += f"internal: true\n"
Markdown est un format universel, permettant à cette sortie de s'intégrer facilement dans de nombreux systèmes de documentation ou systèmes de gestion des connaissances.
Une caractéristique clé de ce script est la possibilité de personnaliser les invites envoyées au LLM. C'est ici que les utilisateurs peuvent affiner le type de sortie qu'ils souhaitent :
Exemple :
You are an experienced Azure cloud architect helping to create reference documentation that explains the resources within an Azure Resource Manager (ARM) template. The documentation you create is intended for use in a knowledge base. Your role is to describe the resources in a clear and human-readable way, providing details on the following: - What resources exist in the ARM template. - How the resources relate to each other. - The purpose of each resource (if possible). - Highlighting network configurations and data locations such as storage accounts and databases. - Be sure to include IP addresses in the documentation when they are available. - Include information about virtual network peering. - It is very important that you also include any potential security issues that you may find.
Exemple :
Provide detailed documentation of the following ARM template for resource group: {template_content} The purpose of this documentation is to...
En gardant ces invites flexibles et simples, le script évite une ingénierie excessive tout en fournissant une documentation de haute qualité.
Remarque : vous devrez avoir installé az CLI et python3 sur votre ordinateur avant d'exécuter ce script.
La configuration et l'exécution du script sont simples :
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
Le script traite chaque groupe de ressources, génère son modèle ARM et crée un fichier markdown dans le répertoire de sortie.
Voici un exemple de ce que le script génère :
response = client.chat.completions.create(model=model, messages=messages)
Ce résultat est concis, lisible et facile à comprendre - exactement ce dont vous avez besoin pour la documentation interne ou les entrées de la base de connaissances.
Azure Assistants est un exemple parfait de la façon dont vous pouvez utiliser les outils existants et les compétences de base en Python pour obtenir des résultats puissants avec les LLM. Il n'est pas nécessaire de recourir à des frameworks d'agents élaborés lorsque de simples scripts, combinés à Azure CLI et à l'API d'OpenAI, peuvent générer une documentation claire et complète pour vos groupes de ressources Azure.
Cet outil démontre qu'avec les bonnes invites et une structure solide, toute personne possédant des compétences de base en matière de script peut tirer parti de l'IA pour automatiser la documentation cloud, ce qui en fait un assistant précieux pour toute équipe DevOps ou d'infrastructure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!