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

如何使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:41:20