使用 AI 助手自动化 Azure 文档
在大规模环境中管理和记录 Azure 资源组 (RG) 可能非常耗时且复杂。但是,如果您可以自动化生成文档的过程,不仅解释存在哪些资源,还解释它们之间的关系,会怎么样?
在本文中,我们将探索简单的 Python 脚本如何利用 LLM(大型语言模型),例如 OpenAI 或 Azure OpenAI 自动从 ARM 模板创建全面的 Markdown 文档。这个工具的强大之处不是使用复杂的代理框架或繁重的基础设施,而是纯Python与Azure CLI和OpenAI的API等成熟工具的结合。它甚至可以与其他人工智能提供商以及使用 Ollama 或其他类似工具的本地法学硕士一起使用。
无需复杂的代理框架
一个常见的误解是您需要复杂的代理框架才能有效地利用法学硕士的力量。实际上,您可以使用现有工具和简单的脚本实现强大的自动化工作流程。在此解决方案中,我们结合了:
- Python:作为脚本语言,它被普遍安装和广泛使用。
- Azure CLI:从 Azure 资源组获取 ARM 模板。
- OpenAI API 调用:从 ARM 模板生成人类可读的文档。
- Markdown:作为文档的输出格式,可以轻松集成到任何知识库中。
结果呢?一个干净、高效的脚本,无需复杂的工具或人工智能驱动的编排即可创建文档。
Azure 助手源代码
源代码可在此 Github 存储库中找到:itlackey/azure-assistants。目前,它包含一个 Python 脚本,该脚本利用 Azure CLI 和 OpenAI API 从 ARM 模板生成 Markdown 文档。如果有兴趣,或者我有需要,可以使用其他工具和脚本更新存储库以自动执行其他任务。
脚本如何工作
这个工具的核心是 document_resource_groups.py 脚本。它做了以下四件事:
- 获取当前 Azure 订阅中的所有资源组。
- 使用 az CLI 从 Azure 资源组导出 ARM 模板。
- 我们解析模板并将它们发送到OpenAI兼容的API。
- 法学硕士用于生成可包含在知识库中的 Markdown 文档。
列出资源组
第一步是获取 Azure 订阅中的所有资源组。这是使用 Python 脚本中的 az CLI 命令完成的。然后我们循环遍历它们以获取 ARM 模板。
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
导出 ARM 模板
同样,使用 Azure CLI,该脚本检索当前订阅中每个资源组的 ARM 模板。这些模板包含所有资源的详细配置信息,包括其网络和安全设置。
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
与LLM总结
接下来,脚本将 ARM 模板发送到 OpenAI(或 Azure OpenAI)进行汇总。这就是奇迹发生的地方。无需深入研究复杂的代理工作流程,简单的系统消息和用户提示为法学硕士提供足够的上下文来生成有洞察力的文档。
response = client.chat.completions.create(model=model, messages=messages)
提示提供了预期的输出模板并指示法学硕士:
- 列出并描述每个资源。
- 解释资源如何相互关联。
- 突出显示重要的网络配置。
这使得法学硕士能够生成结构化、易于阅读的文档,而不需要任何花哨的编排。
生成 Markdown 文档
最后一步是生成包含资源组详细信息的 Markdown 文件。前面的内容包括资源组名称、日期和标签等元数据。然后将 AI 生成的文档添加为文档的内容。
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 是一种通用格式,允许此输出轻松集成到许多文档系统或知识管理系统中。
自定义 AI 提示
此脚本的一个关键功能是能够自定义发送给 LLM 的提示。用户可以在这里微调他们想要的输出类型:
- 系统消息:指导法学硕士生成侧重于解释资源、关系和网络的文档。
示例:
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.
- 用户提示:根据正在汇总的资源组动态生成。
示例:
Provide detailed documentation of the following ARM template for resource group: {template_content} The purpose of this documentation is to...
通过保持这些提示的灵活性和简单性,脚本可以避免过度设计,同时仍然提供高质量的文档。
运行脚本
注意:在运行此脚本之前,您需要在计算机上安装 az CLI 和 python3。
设置和运行脚本非常简单:
- 登录 Azure:确保您已通过 Azure CLI 进行身份验证:
result = subprocess.run( ["az", "group", "list", "--query", "[].name", "-o", "tsv"], stdout=subprocess.PIPE, text=True, ) resource_groups = result.stdout.splitlines()
- 运行脚本生成markdown文档:
export_command = [ "az", "group", "export", "--name", resource_group_name, "--include-parameter-default-value", "--output", "json", ]
该脚本处理每个资源组,生成其 ARM 模板,并在输出目录中创建一个 markdown 文件。
示例输出
以下是脚本生成的示例:
response = client.chat.completions.create(model=model, messages=messages)
此输出简洁、可读和易于理解 - 正是您内部文档或知识库条目所需的内容。
结论
Azure 助手是一个完美的示例,展示了如何使用现有工具和基本的Python技能通过法学硕士取得强大的成果。当简单的脚本与 Azure CLI 和 OpenAI 的 API 相结合就可以为您的 Azure 资源组生成清晰、全面的文档时,无需复杂的代理框架。
该工具表明,通过正确的提示和坚实的结构,任何具有基本脚本编写技能的都可以利用人工智能来自动化云文档 - 使其成为任何 DevOps 或基础设施团队的宝贵助手。
以上是使用 AI 助手自动化 Azure 文档的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。
