Adicionar as configurações do módulo no arquivo de configuração do Bicep

Em um arquivo bicepconfig.json, é possível criar aliases para caminhos de módulos e configurar a precedência de perfis e credenciais para publicar e restaurar módulos.

Este artigo descreve as configurações disponíveis para trabalhar com módulos Bicep.

Aliases para módulos

Para simplificar o caminho para vincular a módulos, crie aliases no arquivo de configuração. Um alias se refere a um registro de módulo ou a um grupo de recursos que contém especificações de modelo.

O arquivo de configuração tem uma propriedade para moduleAliases. Essa propriedade contém todos os aliases que você define. Nessa propriedade, os aliases são divididos com base de que se referem a um registro ou a uma especificação de modelo.

Para criar um alias para um Registro do Bicep, adicione uma propriedade br. Para adicionar um alias para uma especificação de modelo, use a propriedade ts.

{
  "moduleAliases": {
    "br": {
      <add-registry-aliases>
    },
    "ts": {
      <add-template-specs-aliases>
    }
  }
}

Na propriedade br, adicione quantos aliases forem necessários. Dê um nome e as seguintes propriedades a cada alias:

  • registry (obrigatório): nome do servidor de logon do Registro
  • modulePath (opcional): repositório de Registros em que os módulos são armazenados

Na propriedade ts, adicione quantos aliases forem necessários. Dê um nome e as seguintes propriedades a cada alias:

  • subscription (obrigatório): a ID da assinatura que hospeda as especificações de modelo
  • resourceGroup (obrigatório): o nome do grupo de recursos que contém as especificações de modelo

O exemplo a seguir mostra um arquivo de configuração que define dois aliases para um registro de módulo e um alias para um grupo de recursos que contém as especificações de modelo.

{
  "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"
      }
    }
  }
}

Ao usar um alias na referência de módulo, você precisa usar os formatos:

br/<alias>:<file>:<tag>
ts/<alias>:<file>:<tag>

Defina seus aliases como a pasta ou grupo de recursos que contém módulos, não o arquivo em si. O nome do arquivo precisa ser incluído na referência ao módulo.

Sem os aliases, você faria a vinculação a um módulo em um Registro com o caminho completo.

module stgModule 'br:contosoregistry.azurecr.io/bicep/modules/core/storage:v1' = {

Com os aliases, você pode simplificar o link usando o alias do Registro.

module stgModule 'br/ContosoRegistry:bicep/modules/core/storage:v1' = {

Ou você pode simplificar o link usando o alias que especifica o caminho do Registro e do módulo.

module stgModule  'br/CoreModules:storage:v1' = {

Para uma especificação de modelo, use:

module stgModule  'ts/CoreSpecs:storage:v1' = {

Um alias foi predefinido para o registro de módulo público. Para fazer referência a um módulo público, você pode usar o formato:

br/public:<file>:<tag>

Você pode substituir a definição de alias do registro do módulo público no arquivo bicepconfig.json:

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

Configurar perfis e credenciais

Para publicar módulos em um registro de módulo privado ou para restaurar os módulos externos para o cache local, a conta precisa ter as permissões corretas para acessar o Registro. Você pode configurar currentProfile manualmente e credentialPrecedence no arquivo de configuração do Bicep para autenticação no registro.

{
  "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"
    ]
  }
}

Os perfis disponíveis são:

  • AzureCloud
  • AzureChinaCloud
  • AzureUSGovernment

Por padrão, o Bicep usa o perfil AzureCloud e as credenciais do usuário autenticado na CLI do Azure ou no Azure PowerShell. Você pode personalizar esses perfis ou incluir novos para seus ambientes locais. Se você quiser publicar ou restaurar um módulo em um ambiente de nuvem nacional, como AzureUSGovernment, por exemplo, deve definir "currentProfile": "AzureUSGovernment" mesmo se tiver selecionado esse perfil de nuvem na CLI do Azure. O Bicep não consegue determinar automaticamente o perfil de nuvem atual com base nas configurações da CLI do Azure.

O Bicep usa o SDK do Azure.Identity para fazer a autenticação. Os tipos de credenciais disponíveis são:

Observação

O comando de implantação do Bicep no VS Code usa a extensão de conta do Azure para a autenticação. Ele não usa perfis de nuvem de bicepconfig.json.

Próximas etapas