Instruções using e using none

Todos os arquivos de parâmetros do Bicep devem incluir uma declaração using ou using none.

Um arquivo de parâmetro Bicep normalmente usa uma using instrução para vincular o arquivo a um arquivo Bicep, um modelo de Azure Resource Manager JSON (modelo ARM), um módulo Bicep ou uma especificação de modelo. Essa vinculação permite que o Bicep servidor de idiomas e o compilador validem o arquivo de parâmetro verificando se há nomes, tipos e valores necessários corretos com base nas entradas do modelo.

Por outro lado, a using none instrução indica explicitamente que o arquivo de parâmetro não está vinculado a nenhum modelo específico em tempo de compilação. Essa instrução significa que os parâmetros não são validados em relação a um modelo específico e, em vez disso, destinam-se a um uso mais geral, como ser consumido por ferramentas externas ou servir como conjuntos de parâmetros compartilhados e reutilizáveis.

Observação

Os arquivos de parâmetros Bicep têm suporte apenas na CLI do Bicep versão 0.18.4 ou posterior, na CLI do Azure versão 2.47.0 ou posterior e no Azure PowerShell versão 9.7.1 ou posterior. O using none recurso é compatível com a CLI do Bicep versão 0.31.0 ou posterior.

Para usar a instrução com modelos JSON ARM, módulos Bicep e especificações de modelo, você precisa ter a CLI do Bicep versão 0.22.6 ou posterior e a CLI do Azure versão 2.53.0 ou posterior.

A instrução using

A sintaxe da instrução using :

  • Para usar os arquivos Bicep:

    using '<path>/<file-name>.bicep'
    
  • Para usar os modelos do ARM JSON:

    using '<path>/<file-name>.json'
    
  • Para usar módulos públicos:

    using 'br/public:<file-path>:<tag>'
    

    Por exemplo:

    using 'br/public:avm/res/storage/storage-account:0.9.0' 
    
    param name = 'mystorage'
    
  • Para usar módulos privados:

    using 'br:<acr-name>.azurecr.io/bicep/<file-path>:<tag>'
    

    Por exemplo:

    using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
    

    Para usar um módulo privado com um alias definido em um arquivo bicepconfig.json:

    using 'br/<alias>:<file>:<tag>'
    

    Por exemplo:

    using 'br/storageModule:storage:v1'
    
  • Para usar especificações de modelo:

    using 'ts:<subscription-id>/<resource-group-name>/<template-spec-name>:<tag>
    

    Por exemplo:

    using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
    

    Para usar uma especificação de modelo com um alias definido em um arquivo bicepconfig.json:

    using 'ts/<alias>:<template-spec-name>:<tag>'
    

    Por exemplo:

    using 'ts/myStorage:storageSpec:1.0'
    

A instrução using none

A instrução using none em um arquivo de parâmetros Bicep (.bicepparam) indica que o arquivo não está vinculado a um modelo Bicep específico durante a escrita ou compilação. Essa instrução desassocia o arquivo de parâmetro de um modelo específico, permitindo maior flexibilidade na forma como você define e usa parâmetros entre implantações.

A sintaxe da instrução using none :

using none

Coloque essa instrução no início de um arquivo de parâmetros Bicep para sinalizar que nenhum modelo específico é referenciado.

O principal benefício do using none no Bicep está em cenários em que os arquivos de parâmetro são generalizados, compartilhados ou integrados dinamicamente com modelos. Os casos de uso comuns incluem:

  • Repositórios de parâmetros centralizados

    As organizações geralmente mantêm valores de parâmetro padrão — como regiões padrão, convenções de nomenclatura ou tags globais — utilizados em várias implantações do Bicep. Um arquivo de parâmetros Bicep com using none pode atuar como um repositório central para esses valores compartilhados, melhorando a consistência e minimizando a duplicação. Você pode mesclar esses parâmetros programaticamente com valores específicos do modelo no momento da implantação.

    Por exemplo, um arquivo de parâmetros Bicep compartilhado pode definir:

    using none
    
    param location = 'westus2'
    param environmentTag = 'production'
    param projectName = 'myApp'
    

    Além disso, você pode estender esse arquivo de parâmetros. Para obter mais informações, consulte Estender o arquivo de parâmetros.

  • Geração dinâmica e integração de runtime

    Em pipelines de CI/CD ou scripts de automação, você pode criar arquivos de parâmetro em tempo real ou associá-los a modelos em runtime. Ao omitir uma referência de modelo fixa, using none permite que esses arquivos permaneçam flexíveis e adaptáveis a diferentes contextos de implantação.

Quando você especifica using none em um arquivo de parâmetros do Bicep, o compilador não valida os parâmetros em relação a um modelo do Bicep específico. Isso significa que o compilador não gera nenhum aviso de tempo de compilação ou erros para nomes ou tipos incompatíveis devido à ausência de um modelo vinculado. No entanto, essa desassociação se aplica somente durante a criação e a compilação. No momento da implantação, o Azure Resource Manager (ARM) ainda exige um modelo Bicep e um arquivo de parâmetros. O mecanismo ARM executa a validação durante a implantação resolvendo os parâmetros no arquivo em relação àqueles definidos no modelo de destino.

Próximas etapas