在 Bicep 設定檔中新增模組設定
在 bicepconfig.json 檔案中,您可以建立模組路徑的別名,以及設定發行和還原模組的設定檔和認證優先順序。
本文說明可用於使用 Bicep 模組的設定。
模組的別名
若要簡化連結至模組的路徑,請在設定檔中建立別名。 別名意指模組登錄或包含範本規格的資源群組。
設定檔有一個 moduleAliases
屬性。 此屬性包含您定義的所有別名。 在此屬性下,別名會根據其參考的是登錄或範本規格進行區分。
若要建立 Bicep 登錄的別名,請加入 br
屬性。 若要加入範本規格的別名,請使用 ts
屬性。
{
"moduleAliases": {
"br": {
<add-registry-aliases>
},
"ts": {
<add-template-specs-aliases>
}
}
}
在 br
屬性中,加入您所需任意數量的別名。 針對每個別名,請提供名稱和下列屬性:
- registry (必要):登錄的登入伺服器名稱
- modulePath (選用):儲存模組的登錄儲存機制
在 ts
屬性中,加入您所需任意數量的別名。 針對每個別名,請提供名稱和下列屬性:
- subscription (必要):主控範本規格的訂用帳戶識別碼
- resourceGroup (必要):包含有範本規格的資源群組名稱
下列範例顯示的設定檔定義兩個別名以用於模組登錄,以及一個別名以用於包含範本規格的資源群組。
{
"moduleAliases": {
"br": {
"ContosoRegistry": {
"registry": "contosoregistry.azurecr.io"
},
"CoreModules": {
"registry": "contosoregistry.azurecr.io",
"modulePath": "bicep/modules/core"
}
},
"ts": {
"CoreSpecs": {
"subscription": "00000000-0000-0000-0000-000000000000",
"resourceGroup": "CoreSpecsRG"
}
}
}
}
在模組參考中使用別名時,您必須使用格式:
br/<alias>:<file>:<tag>
ts/<alias>:<file>:<tag>
請將您的別名定義為包含模組的資料夾或資源群組,而非檔案本身。 檔案名稱必須包含在模組的參考中。
如果沒有別名,您會使用完整路徑連結到登錄中的模組。
module stgModule 'br:contosoregistry.azurecr.io/bicep/modules/core/storage:v1' = {
如果有別名,您可以使用登錄的別名來簡化連結。
module stgModule 'br/ContosoRegistry:bicep/modules/core/storage:v1' = {
或者,您可以使用指定登錄和模組路徑的別名來簡化連結。
module stgModule 'br/CoreModules:storage:v1' = {
若是範本規格,請使用:
module stgModule 'ts/CoreSpecs:storage:v1' = {
公用模組已預先定義別名。 若要參考公用模組,您可以使用下列格式:
br/public:<file>:<tag>
注意
非AVM (Azure 已驗證模組) 模組會從公用模組登錄淘汰,其中大部分都可作為AVM模組使用。
您可以在 bicepconfig.json 檔案中覆寫公用模組登入別名定義:
{
"moduleAliases": {
"br": {
"public": {
"registry": "<your_module_registry>",
"modulePath": "<optional_module_path>"
}
}
}
}
設定設定檔和認證
若要將模組發佈至私用模組登錄,或是將外部模組還原至本機快取,則帳戶必須擁有正確的權限才能存取登錄。 您可以在 Bicep 組態檔中手動設定 currentProfile
和 credentialPrecedence
,以便向登錄進行驗證。
{
"cloud": {
"currentProfile": "AzureCloud",
"profiles": {
"AzureCloud": {
"resourceManagerEndpoint": "https://management.azure.com",
"activeDirectoryAuthority": "https://login.microsoftonline.com"
},
"AzureChinaCloud": {
"resourceManagerEndpoint": "https://management.chinacloudapi.cn",
"activeDirectoryAuthority": "https://login.chinacloudapi.cn"
},
"AzureUSGovernment": {
"resourceManagerEndpoint": "https://management.usgovcloudapi.net",
"activeDirectoryAuthority": "https://login.microsoftonline.us"
}
},
"credentialPrecedence": [
"AzureCLI",
"AzurePowerShell"
]
}
}
可用的設定檔如下:
- AzureCloud
- AzureChinaCloud
- AzureUSGovernment
根據預設,Bicep 會使用在 Azure CLI 或 Azure PowerShell 中驗證的使用者所用的 AzureCloud
設定檔和認證。 您可以自訂這些設定檔,也可以包含內部部署環境的新設定檔。 如果您要將模組發佈或還原至國家雲端環境,例如 AzureUSGovernment
,即使您已在 Azure CLI 中選取該雲端設定檔,您也必須設定 "currentProfile": "AzureUSGovernment"
。 Bicep 無法根據 Azure CLI 設定自動判斷目前的雲端設定檔。
Bicep 會使用 Azure.Identity SDK 執行驗證。 可用的認證類型如下:
注意
從 VSCode 內執行的 Bicep 部署命令會使用 Azure 帳戶延伸模組進行驗證。 它不會使用來自 bicepconfig.json 的雲端設定檔。