Bagikan melalui


Mengonfigurasi lingkungan Bicep Anda

Bicep mendukung file konfigurasi opsional bernama bicepconfig.json. Dalam file ini, Anda dapat menambahkan nilai yang menyesuaikan pengalaman pengembangan Bicep Anda. File ini digabungkan dengan file konfigurasi default. Untuk informasi selengkapnya, lihat Memahami proses penggabungan. Untuk menyesuaikan konfigurasi, buat file konfigurasi di direktori yang sama atau direktori induk file Bicep Anda. Jika ada beberapa direktori induk yang berisi bicepconfig.json file, Bicep menggunakan konfigurasi dari yang terdekat. Untuk informasi selengkapnya, lihat Memahami proses resolusi file.

Untuk mengonfigurasi pengaturan ekstensi Bicep, lihat Visual Studio Code dan ekstensi Bicep.

Membuat file konfigurasi di Visual Studio Code

Anda dapat menggunakan editor teks apa pun untuk membuat file konfigurasi.

Untuk membuat bicepconfig.json file di Visual Studio Code, buka Palet Perintah ([CTRL/CMD]+[SHIFT]+P), lalu pilih Bicep: Buat File Konfigurasi Bicep. Untuk informasi selengkapnya, lihat Membuat file konfigurasi Bicep.

Cuplikan layar cara membuat file konfigurasi Bicep di Visual Studio Code.

Ekstensi Bicep untuk Visual Studio Code mendukung intellisense untuk file bicepconfig.json Anda. Gunakan intellisense untuk menemukan properti dan nilai yang tersedia.

Cuplikan layar dukungan intellisense dalam mengonfigurasi bicepconfig.json.

Memahami proses penggabungan

File bicepconfig.json mengalami proses penggabungan bottom-up rekursif dengan file konfigurasi default. Selama proses penggabungan, Bicep memeriksa setiap jalur di kedua konfigurasi. Jika jalur tidak ada dalam konfigurasi default, jalur dan nilai terkait ditambahkan dalam hasil akhir. Sebaliknya, jika jalur ada dalam konfigurasi default dengan nilai yang berbeda, nilai dari bicepconfig.json lebih diutamakan dalam hasil gabungan.

Pertimbangkan skenario di mana konfigurasi default didefinisikan sebagai berikut:

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzureCLI",
      "AzurePowerShell"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      }
    }
  },
  ...
}

Dan didefinisikan bicepconfig.json sebagai berikut:

{
  "cloud": {
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "br": {
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  }
}

Konfigurasi gabungan yang dihasilkan adalah:

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      },
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  },
  ...
}

Dalam contoh sebelumnya, nilai cloud.credentialPrecedence diganti, sementara nilai cloud.moduleAliases.ContosoRegistry dan cloud.moduleAliases.CoreModules ditambahkan dalam konfigurasi gabungan.

Memahami proses resolusi file

File bicepconfig.json dapat ditempatkan di direktori yang sama atau direktori induk file Bicep Anda. Jika ada beberapa direktori induk yang berisi bicepconfig.json file, Bicep menggunakan file konfigurasi dari yang terdekat. Misalnya, dalam struktur folder yang diberikan di mana setiap folder memiliki bicepconfig.json file:

Diagram memperlihatkan penyelesaian 'bicepconfig.json' yang ditemukan di beberapa folder induk.

Jika Anda mengkompilasi main.bicep dalam child folder, bicepconfig.json file dalam child folder akan digunakan. File konfigurasi dalam parent folder dan root folder diabaikan. child Jika folder tidak berisi file konfigurasi, Bicep mencari konfigurasi di parent folder lalu root folder . Jika tidak ada file konfigurasi yang ditemukan di salah satu folder, Bicep default menggunakan nilai default.

Dalam konteks file Bicep yang memanggil beberapa modul, setiap modul mengalami kompilasi menggunakan yang terdekat bicepconfig.json. Kemudian, file Bicep utama dikompilasi dengan yang sesuai bicepconfig.json. Dalam skenario berikut, modA.bicep dikompilasi menggunakan yang bicepconfig.json terletak di folder, modB.bicep dikompilasi A dengan bicepconfig.json dalam folder, dan akhirnya, main.bicep dikompilasi B menggunakan bicepconfig.json di root folder.

Diagram memperlihatkan penyelesaian 'bicepconfig.json' yang ditemukan di beberapa folder induk dengan skenario modul.

Dengan tidak adanya bicepconfig.json file di A folder dan B , ketiga file Bicep dikompilasi menggunakan yang bicepconfig.json ditemukan di root folder . Jika bicepconfig.json tidak ada di salah satu folder, proses kompilasi default menggunakan nilai default.

Mengonfigurasi modul Bicep

Saat bekerja dengan modul, Anda dapat menambahkan alias untuk jalur modul. Alias ini dapat menyederhanakan file Bicep Anda karena Anda tidak perlu mengulangi jalur yang rumit. Anda juga dapat mengonfigurasi profil cloud dan prioritas kredensial untuk mengautentikasi ke Azure dari Bicep CLI dan Visual Studio Code. Info masuk digunakan untuk mempublikasikan modul ke registri dan untuk memulihkan modul eksternal ke cache lokal saat menggunakan fungsi sisipkan sumber daya. Untuk informasi selengkapnya, lihat Menambahkan pengaturan modul ke konfigurasi Bicep.

Mengonfigurasi aturan Linter

Linter Bicep memeriksa file Bicep untuk kesalahan sintaksis dan pelanggaran praktik terbaik. Anda dapat mengganti pengaturan default untuk validasi file Bicep dengan memodifikasi bicepconfig.json. Untuk informasi selengkapnya, lihat Menambahkan pengaturan linter ke konfigurasi Bicep.

Mengaktifkan fitur eksperimental

Anda dapat mengaktifkan fitur eksperimental dengan menambahkan bagian berikut ke file Anda bicepconfig.json .

Berikut adalah contoh mengaktifkan fitur 'pernyataan' dan 'testFramework'.

{
  "experimentalFeaturesEnabled": {
    "assertions": true,
    "testFramework": true
  }
}

Untuk informasi tentang serangkaian fitur eksperimental saat ini, lihat Fitur Eksperimental.

Langkah berikutnya