在大规模环境中管理和记录 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中文网其他相关文章!

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。

文章讨论了虚拟环境在Python中的作用,重点是管理项目依赖性并避免冲突。它详细介绍了他们在改善项目管理和减少依赖问题方面的创建,激活和利益。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

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