設定您的 Bicep 環境
Bicep 支援名為 bicepconfig.json 的選擇性組態檔。 在此檔案中,您可以新增自訂 Bicep 開發體驗的值。 此檔案會與預設設定檔合併。 如需詳細資訊,請參閱了解合併流程。 若要自定義組態,請在 Bicep 檔案的相同目錄或父目錄中建立組態檔。 如果有多個包含 bicepconfig.json 檔案的父目錄,Bicep 會使用最接近檔案的組態。 如需詳細資訊,請參閱了解檔案解析流程。
若要設定 Bicep 擴充功能設定,請參閱 Visual Studio Code 和 Bicep 延伸模組。
在 Visual Studio Code 中建立組態檔
您可以使用任何文字編輯器來建立設定檔。
若要在 Visual Studio Code 中建立bicepconfig.json檔案,請開啟命令選擇區 ([CTRL/CMD]+[SHIFT]+P),然後選取 [Bicep:建立 Bicep 組態檔]。 如需詳細資訊,請參閱建立 Bicep 設定檔。
適用於 Visual Studio Code 的 Bicep 延伸模組支援適用於bicepconfig.json檔案的 IntelliSense。 使用 IntelliSense 來探索可用的屬性和值。
了解合併流程
bicepconfig.json檔案會經歷遞歸的下拉式合併程式與預設組態檔。 在合併流程期間,Bicep 會檢查這兩個設定中的每個路徑。 如果預設設定中沒有某個路徑,則會在最終結果中新增該路徑及其相關聯的值。 相反地,如果路徑存在於具有不同值的預設組態中,來自 bicepconfig.json 的值會優先於合併的結果。
請考慮預設設定定義如下的情節:
{
"cloud": {
...
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
},
"moduleAliases": {
"ts": {},
"br": {
"public": {
"registry": "mcr.microsoft.com",
"modulePath": "bicep"
}
}
},
...
}
bicepconfig.json的定義如下:
{
"cloud": {
"credentialPrecedence": [
"AzurePowerShell",
"AzureCLI"
]
},
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
}
}
}
產生的合併設定會是:
{
"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"
}
}
},
...
}
在上述範例中,會取代的值,而 和 cloud.moduleAliases.CoreModules
的值cloud.credentialPrecedence
cloud.moduleAliases.ContosoRegistry
會附加在合併的組態中。
了解檔案解析流程
bicepconfig.json檔案可以放在相同目錄或 Bicep 檔案的父目錄。 如果有多個包含 bicepconfig.json 檔案的父目錄,Bicep 會使用最接近的組態檔。 例如,在給定的資料夾結構中,每個資料夾都有一個 bicepconfig.json 檔案:
如果您在資料夾中編譯 main.bicepchild
,則會使用資料夾中的bicepconfig.json檔案child
。 系統會忽略 parent
資料夾和 root
資料夾中的設定檔。 如果 child
資料夾不包含設定檔,Bicep 會搜尋 parent
資料夾中的設定,然後搜尋 root
資料夾。 如果在任何資料夾中找不到組態檔,Bicep 會預設使用 預設值。
在叫用多個模組的 Bicep 檔案內容中,每個模組都會使用最 接近的bicepconfig.json進行編譯。 然後,主要 Bicep 檔案會以其對應的 bicepconfig.json進行編譯。 在下列案例中,modA.bicep
會使用 位於 A
資料夾中的 bicepconfig.json 進行編譯、modB.bicep
使用資料夾中的 bicepconfig.json編譯,最後,main.bicep 會使用資料夾中的 bicepconfig.json B
root
進行編譯。
如果沒有 和 B
資料夾中的bicepconfig.json檔案A
,所有三個 Bicep 檔案都會使用 資料夾中找到root
的bicepconfig.json進行編譯。 如果 bicepconfig.json 不存在於任何資料夾中,編譯會預設為使用 預設值。
設定 Bicep 模組
使用模組時,您可以新增模組路徑的別名。 這些別名會簡化 Bicep 檔案,因為您不需要重複執行複雜的路徑。 您也可以設定雲端設定檔和認證優先順序,以從 Bicep CLI 和 Visual Studio Code 向 Azure 進行驗證。 認證可用來將模組發佈至登錄,以及在使用插入資源函式時,將外部模組還原至本機快取。 如需詳細資訊,請參閱將模組設定新增至 Bicep 設定。
設定 Linter 規則
Bicep Linter 會檢查 Bicep 檔案是否有語法錯誤和最佳做法違規。 您可以修改 bicepconfig.json 檔案,以覆寫 Bicep 檔案驗證方式的預設設定。 如需詳細資訊,請參閱將 Linter 設定新增至 Bicep 設定。
啟用實驗性功能
您可以將下列區段新增至您的bicepconfig.json檔案,以啟用實驗性功能。 使用實驗性功能會自動啟用 語言 2.0 版程式代碼產生。
以下是啟用功能 'assertions' 和 'testFramework' 的範例。
{
"experimentalFeaturesEnabled": {
"assertions": true,
"testFramework": true
}
}
如需 Bicep 實驗性功能的詳細資訊,請參閱 實驗性功能 。
下一步
- 瞭解如何在 Bicep 組態檔中新增 模組設定 和 linter 設定 。
- 了解 Bicep linter。