Bagikan melalui


Aturan Linter - gunakan pengidentifikasi sumber daya yang stabil

Nama sumber daya tidak boleh menggunakan nilai non-deterministik. Misalnya, newGuid() atau utcNow() tidak dapat digunakan dalam nama sumber daya; nama sumber daya tidak boleh berisi parameter/variabel yang nilai defaultnya menggunakan newGuid() atau utcNow().

Kode aturan linter

Gunakan nilai berikut pada file konfigurasi Bicep untuk menyesuaikan pengaturan aturan:

use-stable-resource-identifiers

Solusi

Contoh berikut gagal dalam pengujian ini karena utcNow() digunakan dalam nama sumber daya.

param location string = resourceGroup().location
param time string = utcNow()

resource sa 'Microsoft.Storage/storageAccounts@2021-09-01' = {
  name: 'store${toLower(time)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Anda dapat memperbaikinya dengan menghapus fungsi utcNow() dari contoh.

param location string = resourceGroup().location

resource sa 'Microsoft.Storage/storageAccounts@2021-09-01' = {
  name: 'store${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Langkah berikutnya

Untuk informasi selengkapnya tentang linter, lihat Menggunakan linter Bicep.