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

Azure Bicep循环创建存储账户时Blob服务NotFound错误排查

问题原因
  • 核心报错原因是blobServices子资源的名称配置错误:存储账户下的Blob服务为全局固定单实例,标准名称必须为default,你当前将该资源的name属性设置为存储账户名称,导致Azure资源管理器尝试查找不存在的路径,抛出404错误,和容器配置无关。
  • $logs容器不会默认生成:手动创建存储账户时如果开启了存储分析/诊断功能才会自动生成$logs容器,Bicep默认部署的存储账户未开启对应配置,因此不会自动生成该容器,你可根据需求选择显式声明容器或后续开启诊断配置自动生成,该逻辑不是本次报错的诱因。
解决方案

修正后的Bicep代码如下,仅需修改blobServices资源的name属性为固定值default即可解决报错:

param storageAccounts array = [
  'storage2312'
  'storage2we1'
]

resource storage_Accounts 'Microsoft.Storage/storageAccounts@2021-04-01' = [ for storageName in storageAccounts :{
  name: storageName
  location: 'westeurope'
  sku: {
    name: 'Standard_RAGRS'
  }
  kind: 'StorageV2'
  properties: {
    allowCrossTenantReplication: true
    minimumTlsVersion: 'TLS1_2'
    allowBlobPublicAccess: false
    allowSharedKeyAccess: true
    networkAcls: {
      bypass: 'AzureServices'
      virtualNetworkRules: []
      ipRules: []
      defaultAction: 'Allow'
    }
    supportsHttpsTrafficOnly: true
    encryption: {
      services: {
        file: {
          keyType: 'Account'
          enabled: true
        }
        blob: {
          keyType: 'Account'
          enabled: true
        }
      }
      keySource: 'Microsoft.Storage'
    }
    accessTier: 'Hot'
  }
}]

resource storage_Accounts_blob_default 'Microsoft.Storage/storageAccounts/blobServices@2021-04-01' = [ for (storageName, i) in storageAccounts :{
  parent: storage_Accounts[i]
  name: 'default' // 此处为修改点,固定使用default作为blob服务的资源名
  properties: {
    changeFeed: {
      enabled: false
    }
    restorePolicy: {
      enabled: false
    }
    containerDeleteRetentionPolicy: {
      enabled: true
      days: 7
    }
    cors: {
      corsRules: []
    }
    deleteRetentionPolicy: {
      enabled: true
      days: 30
    }
    isVersioningEnabled: true
  }
}]

如果需要显式创建$logs容器,可补充以下资源声明:

// 可选配置:批量创建$logs容器
resource log_container 'Microsoft.Storage/storageAccounts/blobServices/containers@2021-04-01' = [ for (storageName, i) in storageAccounts :{
  parent: storage_Accounts_blob_default[i]
  name: '$logs'
  properties: {
    publicAccess: 'None'
  }
}]
补充说明
  • 存储账户的子资源(blobServices、fileServices、queueServices、tableServices)均为单实例资源,名称固定为default,部署时不需要替换为自定义名称。
  • 如需开启存储分析功能自动生成$logs容器,可直接在blobServices的properties中配置对应诊断规则,无需手动创建容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:45:04