分享方式:


在 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>

您可以在 bicepconfig.json 檔案中覆寫公用模組登錄別名定義:

{
  "moduleAliases": {
    "br": {
      "public": {
        "registry": "<your_module_registry>",
        "modulePath": "<optional_module_path>"
      }
    }
  }
}

設定設定檔和認證

若要將模組發佈至私用模組登錄,或是將外部模組還原至本機快取,則帳戶必須擁有正確的權限才能存取登錄。 您可以在 Bicep 組態檔中手動設定 currentProfilecredentialPrecedence,以便向登錄進行驗證。

{
  "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 的雲端設定檔。

下一步