如何使用Azure.ResourceManager包更新存储账户IP规则?求迁移示例代码
使用Azure.ResourceManager包更新存储账户IP规则的示例代码
前置依赖
- 安装NuGet包:
Azure.ResourceManager.Storage和Azure.Identity - 确保身份验证凭据配置正确(本地开发可使用
DefaultAzureCredential,生产环境可根据场景选择合适的身份方式)
迁移后的实现代码
using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Storage; using Azure.ResourceManager.Storage.Models; // 初始化ArmClient(完成身份验证) var armClient = new ArmClient(new DefaultAzureCredential()); // 定位目标订阅 var subscriptionId = "<subscription_id>"; var subscriptionResource = armClient.GetSubscriptionResource( ResourceIdentifier.Parse($"/subscriptions/{subscriptionId}")); // 获取指定的存储账户资源 var resourceGroupName = "<resource_grp_name>"; var storageAccountName = "<storage_account_name>"; var storageAccount = await subscriptionResource.GetStorageAccountAsync( resourceGroupName, storageAccountName).ConfigureAwait(false); // 构建存储账户更新参数:配置网络规则集 var updateParams = new StorageAccountUpdateParameters { NetworkRuleSet = new NetworkRuleSet { // 对应旧代码的WithAccessFromSelectedNetworks:默认拒绝非允许的访问 DefaultAction = DefaultAction.Deny, // 对应旧代码的WithAccessFromAzureServices:允许Azure内部服务访问 Bypass = BypassOptions.AzureServices, // 添加IP规则:包含单个IP和IP范围 IpRules = new List<IPRule> { new IPRule("<some_ip_address_range>", IPRuleAction.Allow), new IPRule("<some_ip_address>", IPRuleAction.Allow) } } }; // 执行更新操作,等待完成 await storageAccount.UpdateAsync(WaitUntil.Completed, updateParams).ConfigureAwait(false);
关键差异说明
- 新包采用资源中心模型,所有操作围绕资源实例展开,替代旧Fluent包的链式更新语法
- 网络规则集中的
DefaultAction = Deny等价于旧代码的WithAccessFromSelectedNetworks,Bypass = AzureServices等价于WithAccessFromAzureServices - 单个IP和IP范围可一次性添加到
IpRules列表中,无需分两次调用更新操作,效率更高
内容的提问来源于stack exchange,提问作者rash1234
相关产品推荐
相关产品推荐

