适用于 Terraform 的 Azure 导出概述

适用于 Terraform 的 Azure 导出是一种工具,旨在帮助减少 Azure 和 Terraform 概念之间的转换摩擦。

好处

使用适用于 Terraform 的 Azure 导出,可以:

  • 简化迁移到 Azure 上的 Terraform。 使用适用于 Terraform 的 Azure 导出,可以使用单个命令将 Azure 资源迁移到 Terraform。
  • 使用单个命令将用户指定的资源集导出到 Terraform HCL 代码和状态。 使用适用于 Terraform 的 Azure 导出,可以指定要导出的预先确定的范围。 范围可以像单个资源一样精细。 还可以导出资源组及其嵌套资源。 最后,可以导出整个订阅。
  • 检查具有所有公开属性的预先存在的基础结构。 无论是学习新发布的资源还是调查生产中的问题,适用于 Terraform 的 Azure 导出都支持只读导出,并可以选择公开所有可配置的资源属性。
  • 遵循计划/应用工作流,将非 Terraform 基础结构集成到 Terraform 中。 导出 HCL 代码,检查非 Terraform 资源,并将其轻松集成到生产基础结构和远程后端。

安装

Azure 适用于 Terraform 的 Azure 导出 GitHub 页面列出了该工具的版本,其中包含各种平台(Windows MSI、Homebrew 和 Linux 安装)的安装链接和源代码。

使用情况

最抽象的 Azure 导出调用方式如下:

aztfexport [command] [option] <scope>

范围会根据正在运行的命令而变化,可用的选项标志集也是如此。 根据要导出的内容,应使用三个命令:

任务 说明 示例
导出单个资源。 若要导出单个资源,请指定与资源关联的 Azure resourceID。 aztfexport resource [option] <资源 id>
导出资源组。 若要导出资源组(及其嵌套资源),请指定资源组名称;不是 ID。 aztfexport resource-group [option] <资源组名称>
使用查询导出。 该工具支持使用 Azure Resource Graph 查询进行导出。 aztfexport query [option] <ARG where predicate>

提供程序

虽然 Azure 导出默认为 azurerm 提供程序,但也可以导出AzAPI 提供程序

aztfexport [command] --provider-name=azapi [further options] <scope>

数据收集泄露

默认情况下,适用于 Terraform 的 Azure 导出会收集遥测数据。 但是,可以轻松禁用此过程。

Microsoft 聚合收集的数据以识别使用模式、识别常见问题并改善适用于 Terraform 的 Azure 导出的体验。 例如,使用情况数据可帮助确定问题(如命令成功率较低),并帮助确定工作优先级。 适用于 Terraform 的 Azure 导出不会收集任何私有或个人数据。

如果确实要禁用数据收集,请在安装该工具后运行以下命令:

aztfexport config set telemetry_enabled false

后续步骤

概念:

适用于 Terraform 的 Azure 导出概念:了解适用于 Terraform 的 Azure 导出的工作流及其最佳做法和当前设计限制。

快速入门文章:

操作指南文章:

操作指南文章介绍更复杂的方案以及说明和选项: