Bicep isHnsEnabled 无法更新

Bicep isHnsEnabled Cannot be updated

我们正在将 ARM 模板升级到 Bicep,其中一个用于存储。在最初移植的 Bicep 文件中,一切正常,然后作为我 PR 的一部分,突出显示我遗漏了 isHnsEnabled.

然后我调整了我的二头肌脚本,在我们创建模块库时将 属性 设置包含在一个参数中:

param saName string
param storageSku string
param tags object
param isHnsEnabled bool

resource storageaccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: saName
  location: resourceGroup().location
  tags: tags
  sku: {
    name: storageSku
  }
  kind: 'StorageV2'
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    minimumTlsVersion: 'TLS1_2'
    allowBlobPublicAccess: false
    allowCrossTenantReplication: false  
    allowSharedKeyAccess: true
    isHnsEnabled: isHnsEnabled
    networkAcls: {
      virtualNetworkRules: []
      defaultAction: 'Deny'
      }
      encryption: {
        keySource: 'Microsoft.Storage'
        services: {
          file: {
            keyType: 'Account'
            enabled: true 
          }
        }
      }
        }
}

output name string = storageaccount.name
output id string = storageaccount.id
output identity string = storageaccount.identity.principalId

这会产生以下错误:

The property 'isHnsEnabled' was specified in the input, but it cannot be updated as it is read-only

我不确定我是否需要设置其他属性与此组合,但 Microsoft Docs 中没有任何内容表明 that.I 会假设资源已经创建并且属性与 Bicep 相匹配不会尝试通过 CICD 更改资源。

如有任何建议,我们将不胜感激。

isHnsEnabled 属性(启用分层命名空间)只能在创建新资源时设置。

您可以查看这篇文章以了解何时启用此功能: Deciding whether to enable a hierarchical namespace.

要升级您的存储,您可以按照这篇文章:Upgrade Azure Blob Storage with Azure Data Lake Storage Gen2 capabilities

否则您可以删除并重新创建存储帐户。