Bagikan melalui


Aturan Linter - cakupan templat penyebaran berlapis

Aturan linter ini memicu diagnostik saat Microsoft.Resources/deployments sumber daya menggunakan evaluasi ekspresi dalam cakupan dan berisi referensi apa pun ke simbol yang ditentukan dalam templat induk.

Kode aturan linter

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

nested-deployment-template-scoping

Solusi

Contoh berikut gagal dalam pengujian ini karena fizz didefinisikan dalam namespace templat induk.

var fizz = 'buzz'

resource nested 'Microsoft.Resources/deployments@2024-03-01' = {
  name: 'name'
  properties: {
    mode: 'Incremental'
    expressionEvaluationOptions: {
      scope: 'inner'
    }
    template: {
      '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
      contentVersion: '1.0.0.0'
      resources: [
        {
          apiVersion: '2024-03-01'
          type: 'Microsoft.Resources/tags'
          name: 'default'
          properties: {
            tags: {
              tag1: fizz // <-- Error! `fizz` is defined in the parent template's namespace
            }
          }
        }
      ]
    }
  }
}

Langkah berikutnya

Untuk informasi selengkapnya tentang linter, lihat Menggunakan linter Bicep.