SuperAPI AI 工具集

azure-verified-modules

部署与运维

查看项目

更新于 10-16 07:29

技能介绍

用途

Azure Verified Modules(AVM)参考技能用于帮助开发者学习微软官方 Terraform 模块(Azure Verified Modules)中的模式,从而在构建自定义 Terraform 模块时理解最佳实践、安全模式以及正确的资源配置方式。

适用时机包括:学习 Azure 资源配置的最佳实践、研究微软推荐的安全默认值、理解模块结构与组织模式、查找正确的资源属性与配置,以及为自定义模块开发提供参考架构。

主要能力

AVM 提供以下方面的参考示例:

  • 安全优先配置(TLS 版本、加密、网络规则)
  • 正确的变量验证模式
  • 输出结构与命名约定
  • 可选资源的动态块
  • 模块组织与文件结构

从 AVM 中可学习的关键要点:

  1. 安全默认值:始终强制最低 TLS 1.2;默认禁用公共访问;对 PaaS 服务使用私有终结点;启用静态和传输中加密。
  2. 变量设计:为 Azure 资源约束添加验证;为可选值提供合理默认值;对复杂配置使用对象类型;为所有变量添加描述文档。
  3. 资源组织:对子资源使用 for_each;为可选配置实现动态块;一致地为所有资源打标签;可预测地命名资源。
  4. 输出结构:暴露资源 ID;提供连接终结点;适当标记敏感值;使用描述性输出名称。

使用方式

查找 AVM 作为参考的途径:

  • 官方 AVM 目录:浏览实现,地址为 https://azure.github.io/Azure-Verified-Modules/
  • Terraform Registry:查看源代码,地址为 https://registry.terraform.io/namespaces/Azure
  • AVM 模块以 avm- 为前缀,例如 avm-res-storage-storageaccount,可在 https://registry.terraform.io/search/modules?q=avm 搜索。

使用 Terraform MCP 工具:

# 使用 terraform MCP 查找相关 AVM 模块
search_modules("azure storage account verified")

# 查看 AVM 实现细节
get_module_details("Azure/avm-res-storage-storageaccount/azurerm")

适用场景

该技能适用于需要编写或改进 Azure Terraform 模块的开发者,尤其是在关注安全默认配置、变量验证、资源组织与输出规范时。可作为自定义模块开发的参考架构。

限制与注意事项

不要通过将 AVM 作为模块调用来复制它,例如:

# 这违背了初衷——只是创建了一个包装器
module "storage_wrapper" {
  source  = "Azure/avm-res-storage-storageaccount/azurerm"
  version = "0.2.0"
  name    = var.name
}

应当学习模式并直接实现资源,例如:

# 这才是我们想要的——使用 AVM 模式的实际资源
resource "azurerm_storage_account" "this" {
  name                = var.name
  resource_group_name = var.resource_group_name
  location            = var.location

  # 使用从 AVM 学到的安全模式
  min_tls_version           = "TLS1_2"
  https_traffic_only_enabled = true
}

更多详细代码示例、安全模式和模块模板,请参阅参考指南。