SuperAPI AI 工具集

import-infrastructure-as-code

部署与运维

查看项目

更新于 10-15 21:52

技能介绍

用途:把现有 Azure 基础设施转换为可维护的 Terraform 代码,基于 Azure CLI 发现数据与 Azure Verified Modules(AVM)。适用于将现有 Azure 资源导入 Terraform、从实时环境生成 IaC、按订阅或资源组重建基础设施、映射资源依赖,以及用 AVM 模块替代手写 azurerm_* 资源。

前置条件:已安装并登录 Azure CLI(az login)、可访问目标订阅或资源组、已安装 Terraform CLI、可访问 Terraform Registry 与 AVM 索引。

输入:subscription-id、resource-group-name、resource-id 均为可选,但至少需提供其一。

主要流程:先收集作用域;执行 az login 与 az account set --subscription <subscription-id>;用 az resource list 或 az resource show --ids 发现资源;解析 JSON 映射父子与跨资源依赖,并生成 docs 目录下的 exported-resources.json 与 EXPORTED-ARCHITECTURE.MD;为每种资源类型选择最新 AVM 模块,写代码前必须阅读模块 README,区分必填与可选输入、子资源归属及标识符风格(如 parent_id 与 resource_group_name);生成 providers.tf、main.tf、variables.tf、outputs.tf、terraform.tfvars.example;写 import 块前用 grep 检查 .terraform/modules 下模块源码,确认资源地址、子模块路径及 count/for_each 索引;对比实时属性与模块默认值,显式设置差异项;最后运行 terraform init、terraform fmt -recursive、terraform validate、terraform plan 验证。

限制:无 AVM 覆盖的资源类型需回退到原生 azurerm_* 并记录缺口;ARM 资源 ID 只能作为云标识符传给 --ids,不能当作本地文件路径;缺少作用域时不应继续;不得在未列出发现文件与验证输出的情况下声称导入成功。具体版本、价格与平台信息暂未提供。