You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Terraform创建azuread_application时的msgraph序列化报错

解决Terraform创建azuread_application实例报错的配置调整方案

报错根因

该报错是hashicorp/azuread provider v2.5.0版本的已知序列化缺陷,创建应用注册时如果未显式指定所有者字段,provider处理Microsoft Graph接口请求参数时,会生成空的ODataId字段导致JSON序列化失败。

调整方案(二选一即可)

方案1:升级azuread provider版本(推荐)

v2.6.0及以上版本的azuread provider已经修复了该缺陷,操作步骤如下:

  • 修改terraform块中azuread provider的版本约束:
terraform {
  required_providers {
    azuread = {
      source  = "hashicorp/azuread"
      version = ">= 2.6.0"
    }
  }
}
  • 执行命令拉取新版本provider:
    terraform init -upgrade
  • 重新执行terraform apply即可正常创建资源

方案2:固定使用v2.5.0版本时,显式指定owners参数

如果因环境约束不能升级provider,可以在azuread_application资源块中显式指定所有者属性,值为当前认证用服务主体的对象ID:

resource "azuread_application" "appRegistration" {
  display_name = var.instanceName
  # 填入当前认证用服务主体的对象ID,可在Azure AD应用注册页面的概述栏获取
  owners = ["<服务主体对象ID>"]
  app_role {
    allowed_member_types = ["User", "Application"]
    description          = "Admins can manage roles and perform all task actions"
    display_name         = "Admin"
    enabled              = true
    id                   = "1b19509b-32b1-4e9f-b71d-4992aa991967"
    value                = "admin"
  }
}

修改完成后直接执行terraform apply即可。

内容的提问来源于stack exchange,提问作者CodeMed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:06:05