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

如何用C#/VB通过Azure.ResourceManager.Storage创建Azure存储账户

用C#/VB创建Azure存储账户(替代弃用的Microsoft.Azure.Management.Storage)

现在微软推荐使用Azure.ResourceManager.Storage包(属于Azure Resource Manager新SDK)替代弃用的Microsoft.Azure.Management.Storage。以下是具体实现步骤:

1. 安装必要的NuGet包

需要安装两个核心包:

  • Azure.ResourceManager.Storage:存储资源管理的核心SDK
  • Azure.Identity:用于Azure服务的身份验证(支持多种认证场景)

可通过NuGet包管理器或命令行安装:

# 命令行安装示例
Install-Package Azure.ResourceManager.Storage
Install-Package Azure.Identity

2. 认证方式

推荐使用DefaultAzureCredential,它会自动适配本地开发(Visual Studio、Azure CLI)和生产环境(服务主体、托管标识)的认证逻辑,无需硬编码密钥。

3. C# 代码示例

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Storage;
using Azure.ResourceManager.Storage.Models;

// 初始化ArmClient,使用DefaultAzureCredential认证
var armClient = new ArmClient(new DefaultAzureCredential());

// 获取目标订阅资源(替换为你的订阅ID)
string subscriptionId = "your-subscription-id";
var subscription = armClient.GetSubscriptionResource(new ResourceIdentifier($"/subscriptions/{subscriptionId}"));

// 获取目标资源组(替换为你的资源组名称)
string resourceGroupName = "your-resource-group-name";
var resourceGroup = await subscription.GetResourceGroupAsync(resourceGroupName);

// 定义存储账户创建参数
string storageAccountName = "your-storage-account-name"; // 名称需全局唯一,长度3-24,仅小写字母和数字
var storageAccountParams = new StorageAccountCreateParameters(
    location: "eastus", // 替换为你需要的区域
    sku: new StorageSku(StorageSkuName.StandardLRS), // 选合适的SKU,比如Standard_LRS、Premium_LRS等
    kind: StorageKind.StorageV2) // 推荐使用StorageV2类型
{
    // 可选:设置其他属性,比如禁止Blob公共访问、启用Data Lake Gen2
    AllowBlobPublicAccess = false,
    IsHnsEnabled = false
};

// 创建或更新存储账户
var operation = await resourceGroup.GetStorageAccounts().CreateOrUpdateAsync(
    WaitUntil.Completed,
    storageAccountName,
    storageAccountParams);

// 获取创建后的存储账户资源
var storageAccount = operation.Value;
Console.WriteLine($"存储账户 {storageAccountName} 创建成功,ID: {storageAccount.Id}");

4. VB.NET 代码示例

Imports Azure.Identity
Imports Azure.ResourceManager
Imports Azure.ResourceManager.Storage
Imports Azure.ResourceManager.Storage.Models

' 初始化ArmClient,使用DefaultAzureCredential认证
Dim armClient As New ArmClient(New DefaultAzureCredential())

' 获取目标订阅资源(替换为你的订阅ID)
Dim subscriptionId As String = "your-subscription-id"
Dim subscription = armClient.GetSubscriptionResource(New ResourceIdentifier($"/subscriptions/{subscriptionId}"))

' 获取目标资源组(替换为你的资源组名称)
Dim resourceGroupName As String = "your-resource-group-name"
Dim resourceGroup = Await subscription.GetResourceGroupAsync(resourceGroupName)

' 定义存储账户创建参数
Dim storageAccountName As String = "your-storage-account-name" ' 名称需全局唯一,长度3-24,仅小写字母和数字
Dim storageAccountParams As New StorageAccountCreateParameters(
    location:="eastus", ' 替换为你需要的区域
    sku:=New StorageSku(StorageSkuName.StandardLRS), ' 选合适的SKU
    kind:=StorageKind.StorageV2) With {
    .AllowBlobPublicAccess = False,
    .IsHnsEnabled = False
}

' 创建或更新存储账户
Dim operation = Await resourceGroup.GetStorageAccounts().CreateOrUpdateAsync(
    WaitUntil.Completed,
    storageAccountName,
    storageAccountParams)

' 获取创建后的存储账户资源
Dim storageAccount = operation.Value
Console.WriteLine($"存储账户 {storageAccountName} 创建成功,ID: {storageAccount.Id}")

关键说明

  • 存储账户名称必须全局唯一,长度限制3-24字符,仅包含小写字母和数字。
  • SKU类型按需选择:StandardLRS(本地冗余存储)是低成本通用选项,PremiumLRS适用于高性能IO场景。
  • StorageKind.StorageV2是当前推荐的通用存储账户类型,支持Blob、文件、队列、表等全存储服务。
  • 若需启用Data Lake Storage Gen2功能,将IsHnsEnabled设为true即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:20:08