Trabalhar com os metadados do Azure Developer CLI para os parâmetros de entrada do Bicep

A CLI do Desenvolvedor do Azure (azd) suporta modelos Bicep com o decorador @metadata. Adicione metadados aos parâmetros de entrada do Bicep para melhorar a implantação com padrões inteligentes, geração automática de valor e melhor solicitação de parâmetro.

Adicionando metadados

Os parâmetros de entrada no Bicep suportam @metadata como um objeto sem esquema. Adicione os metadados azd incluindo o campo azd nos metadados do parâmetro:

@metadata({
  azd: {}
})
param someInput <param-type>

Os metadados da CLI do Desenvolvedor do Azure não dependem do tipo do parâmetro e você pode adicioná-lo a qualquer parâmetro.

Metadados com suporte

Os campos de configuração com suporte para azd metadados são:

Campo Description
type Define como azd solicita este parâmetro. Por exemplo, location.
config Descreve as configurações para alguns tipos de metadados, como generate.
default Define um valor para azd realçar primeiro durante um prompt de seleção.
usageName Controla a verificação de cota para a seleção do local do modelo de IA.

Cada campo é descrito com mais detalhes nas seções a seguir.

Tipo

Essa configuração define como azd solicita um parâmetro de entrada. Os tipos compatíveis incluem:

  • localização

    Use o location tipo para informar azd que um parâmetro de entrada gerencia um local do Azure. Quando azd localiza o location tipo nos metadados, ele solicita um valor usando a lista de seleção de localização. Por exemplo:

    @metadata({
      azd: {
        type: 'location'
      }
    })
    param someInput string
    

    Fluxo de prompt:

    Uma captura de tela mostrando um prompt de localização com metadados.

    Combine o tipo location com o campo default para controlar qual local é destacado primeiro durante o fluxo de comandos. Por exemplo:

    @metadata({
      azd: {
        type: 'location'
        default: 'westus'
      }
    })
    param someInput string
    

    Fluxo de comandos

    Uma captura de tela mostrando um prompt de localização com metadados que inclui um valor padrão.

    A opção padrão realçada corresponde ao default campo dos metadados. Essa abordagem permite que os autores de modelo recomendem um local enquanto os usuários podem confirmá-lo ou alterá-lo. Definir um valor padrão para o parâmetro de entrada no Bicep ignora o fluxo de prompt e usa o valor padrão sem confirmação do usuário.

  • gerar

    Use o tipo generate para que azd crie automaticamente o valor do parâmetro de entrada. Esse tipo geralmente é usado para gerar senhas ou identificadores exclusivos:

    @metadata({
      azd: {
        type: 'generate'
        config: {
          length: 10
        }
      }
    })
    param someInput string
    

    Observação

    O config campo é necessário com type: 'generate'.

    Quando azd executado, ele gera um valor de 10 caracteres para o parâmetro de entrada sem solicitar entrada. Consulte a seção de configuração para obter opções para configurar valores de geração automática.

  • resourceGroup

    Use o resourceGroup tipo para instruir azd a solicitar um grupo de recursos para esta entrada.

    @metadata({
      azd: {
        type: 'resourceGroup'
      }
    })
    param someInput string
    

    Fluxo de comandos

    Uma captura de tela mostrando um prompt com o tipo de grupo de recursos.

Config

O config objeto é necessário com o generate tipo. Ele controla as opções de geração automática. A tabela a seguir descreve as opções de geração de configuração:

Nome do campo Tipo Description Padrão
length int Comprimento total do valor gerado 0
noLower bool Se verdadeiro, exclui letras minúsculas. false
noUpper bool Se verdadeiro, exclui letras maiúsculas. false
noNumeric bool Se verdadeiro, exclui números. false
nãoEspecial bool Se verdadeiro, exclui caracteres especiais. false
minLower int Número mínimo de letras minúsculas necessárias. 0
minUpper int Número mínimo de letras maiúsculas necessárias. 0
minNumeric int Quantidade mínima de números necessários. 0
minSpecial int Número mínimo de caracteres especiais necessários. 0

Importante

A soma de todos os requisitos mínimos (MinLower + MinUpper + MinNumeric + MinSpecial) não pode exceder o comprimento total. Se qualquer sinalizador "Não" for verdadeiro, defina o valor "Min-" correspondente como 0.

Por exemplo, gere um valor com comprimento 10, sem caracteres especiais e sem números:

@metadata({
  azd: {
    type: 'generate'
    config: {
      length: 10
      noNumeric: true
      noSpecial: true
    }
  }
})
param someInput string

Padrão

Define o valor inicial de uma lista a ser realçada. Combine-o com o tipo location ou aplique-o diretamente a uma entrada com uma lista definida de opções.

@allowed(['foo', 'bar', 'baz'])
@metadata({
  azd: {
    default: 'baz'
  }
})
param someInput string

Este exemplo usa a @allowed() anotação do Bicep para definir uma lista de valores com suporte para o parâmetro de entrada. Quando azd solicita essa entrada, ela usa a lista de valores permitidos. O campo default nos metadados controla qual opção é definida como a seleção inicial:

Uma captura de tela mostrando o padrão em um prompt dos valores permitidos.

Nome de Uso

O usageName campo filtra a lista de locais apenas para locais onde um SKU de IA específico e capacidade estão disponíveis.

@metadata({
  azd: {
    type: 'location'
    usageName: [
      'OpenAI.GlobalStandard.gpt-5-mini,10'
    ]
  }
})
param someInput string

Este exemplo mostra azd apenas os locais do Azure em que o modelo gpt-5-mini de IA tem cota suficiente (capacidade de pelo menos 10).

Fluxo de prompt:

Uma captura de tela mostrando a configuração de usageName para solicitar a localização da IA.

Observação

azd retornará um erro se não houver um local com cota suficiente.