如何在Pulumi C#中为Azure SQL Managed Instance委托子网
错误原因
你遇到的InvalidRequestFormat报错是因为DelegationArgs配置存在两处问题:
- 不需要手动指定
Type属性,Pulumi Azure Native 提供程序会自动填充该字段,多余的自定义字段会导致Azure API无法正常解析请求 - 缺少必填的
Name属性,每个子网委托都需要指定唯一的名称作为标识
正确配置代码
// Managed Instance 子网必须配置委托 var spokeManagedInstanceSubnet = new Subnet($"{SpokeVirtualNetwork}.{ManagedInstanceSubnet}", new AzureNative.Network.SubnetArgs { SubnetName = ManagedInstanceSubnet, AddressPrefix = spokeSubnetCidrs[ManagedInstanceSubnet], VirtualNetworkName = spokeVnet.Name, ResourceGroupName = mainResourceGroup.Name, Delegations = new InputList<DelegationArgs> { new DelegationArgs { // 委托的唯一名称,可自定义 Name = "sqlManagedInstanceDelegation", ServiceName = "Microsoft.Sql/managedInstances" } } }, new CustomResourceOptions { DependsOn = { spokeVnet } });
额外注意事项
- SQL托管实例的专属子网地址前缀最小要求为
/24(包含256个可用IP),否则后续部署托管实例时会触发地址空间不足错误 - 该子网不能部署其他任何Azure资源,需保留为SQL托管实例专属
- 注意
DelegationArgs的命名空间为AzureNative.Network.Inputs,避免引入其他命名空间下的同名类导致配置不匹配
内容的提问来源于stack exchange,提问作者MD TAREQ HASSAN
相关产品推荐
相关产品推荐

