使用Terraform为VM部署AzureMonitor扩展遇404错误求助
Terraform部署Azure Monitor虚拟机扩展报错404问题排查
报错信息
Error: compute.VirtualMachineExtensionsClient#CreateOrUpdate: Failure sending request: StatusCode=404 -- Original Error: Code="ArtifactNotFound" Message="The VM extension with publisher 'Microsoft.Azure.Monitor' and type 'Microsoft.Compute' could not be found."
原Terraform代码
resource "azurerm_virtual_machine_extension" "AzureMonitorWindowsAgent" { name = "AzureMonitorWindowsAgent" publisher = "Microsoft.Azure.Monitor" type = "Microsoft.Compute" type_handler_version = "1.0" virtual_machine_id = var.target_vm }
手动部署后查询结果
通过az vm extension list -g MyResourceGroup --vm-name MyVm命令返回的关键信息片段:
{ "publisher": "Microsoft.Azure.Monitor", "type": "Microsoft.Compute/virtualMachines/extensions", "typeHandlerVersion": "1.0", "typePropertiesType": "AzureMonitorWindowsAgent" }
问题分析与修正
你的脚本核心错误是**type参数取值错误**:
Microsoft.Compute是Azure资源提供程序名称,Microsoft.Compute/virtualMachines/extensions是该资源的完整Azure资源路径,两者都不是虚拟机扩展本身的type参数值。- 正确的扩展类型是返回结果中
typePropertiesType字段的值:AzureMonitorWindowsAgent。
修正后的代码
resource "azurerm_virtual_machine_extension" "AzureMonitorWindowsAgent" { name = "AzureMonitorWindowsAgent" publisher = "Microsoft.Azure.Monitor" type = "AzureMonitorWindowsAgent" type_handler_version = "1.0" auto_upgrade_minor_version = true virtual_machine_id = var.target_vm }
说明:
publisher取值保持Microsoft.Azure.Monitor正确,与手动部署结果一致。- 新增
auto_upgrade_minor_version = true(可选但推荐),可自动升级扩展小版本,提升兼容性与安全性。
内容的提问来源于stack exchange,提问作者Igor Meszaros
相关产品推荐
相关产品推荐

