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

创建用户分配托管标识时遇Microsoft.ManagedIdentity API版本错误求助

问题分析与解决办法

问题描述

创建用户分配托管标识时触发如下错误:

System.Exception: The resource type could not be found in the namespace 'Microsoft.ManagedIdentity' for api version '2022-01-31-PREVIEW'. ---> Microsoft.Rest.Azure.CloudException: The resource type could not be found in the namespace 'Microsoft.ManagedIdentity' for api version '2022-01-31-PREVIEW'.

使用的代码示例:

var resourceClient = new Azure.Management.ResourceManager.ResourceManagementClient(ClientCredential);

resourceClient.SubscriptionId = SubscriptionId.ToString();

var result = resourceClient.Resources.CreateOrUpdateAsync(ResourceGroup.Name, "Microsoft.ManagedIdentity", "", "userAssignedIdentities", IdentityName, "2023-01-31", identity).GetResult();

解决步骤

1. 核对API版本的一致性

代码中指定的API版本是2023-01-31,但错误信息中出现的是2022-01-31-PREVIEW,说明实际请求使用的版本和代码声明不一致。

  • 检查identity对象属性,确保没有硬编码旧版API版本;
  • 替换API版本参数为Microsoft.ManagedIdentity当前支持的稳定版(如2023-07-31,可通过Azure订阅的资源提供商页面查询最新稳定版本)。

2. 使用专用托管标识客户端替代通用资源客户端

通用ResourceManagementClient易出现资源类型与API版本匹配问题,推荐使用专门的ManagedIdentityClient:

  • 安装NuGet包:Azure.Management.ManagedIdentity
  • 替换代码为:
using Azure.Identity;
using Azure.Management.ManagedIdentity;
using Azure.Management.ManagedIdentity.Models;

var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var managedIdentityClient = new ManagedIdentityClient(credential)
{
    SubscriptionId = SubscriptionId.ToString()
};

var identityParams = new Identity();
var result = await managedIdentityClient.UserAssignedIdentities.CreateOrUpdateAsync(
    resourceGroupName: ResourceGroup.Name,
    resourceName: IdentityName,
    parameters: identityParams
);

专用客户端会自动匹配正确的API版本和资源类型,避免手动参数错误。

3. 再次确认资源提供商注册状态

检查Microsoft.ManagedIdentity在目标订阅下的注册状态是否为Registered:

  • 通过Azure CLI执行:
az provider show --namespace Microsoft.ManagedIdentity --query registrationState
  • 若状态非Registered,执行注册命令:
az provider register --namespace Microsoft.ManagedIdentity

等待注册完成(约数分钟)后重试创建操作。

4. 验证资源类型参数的正确性

确认CreateOrUpdateAsync的参数取值和顺序无误:

  • resourceProviderNamespace必须为"Microsoft.ManagedIdentity"
  • resourceType必须为"userAssignedIdentities"
  • parentResourcePath为空字符串(用户分配托管标识是顶级资源,无父资源)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:32:26