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

A CLI do Desenvolvedor do Azure (azd) dá suporte a modelos Bicep com o @metadata decorador. 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âmetros.

Adicionando metadados

Os parâmetros de entrada no Bicep suportam @metadata como um objeto livre de esquema. Adicione azd metadados incluindo o azd campo 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á-los a qualquer parâmetro.

Metadados suportados

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

Campo Description
type Define como azd solicita esse parâmetro. Por exemplo, location.
config Descreve configurações para alguns tipos de metadados, como generate.
default Define um valor para azd ser realçado primeiro durante um prompt de seleção.
usageName Controla a verificação de cota para a seleção de 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 suportados incluem:

  • Localização

    Use o location tipo para indicar azd que um parâmetro de entrada gerencia uma localização do Azure. Quando azd encontra o tipo location 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 é realçado primeiro durante o fluxo de solicitação. Por exemplo:

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

    Fluxo de prompts

    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 modelos recomendem um local enquanto os usuários podem confirmá-lo ou alterá-lo. A definição de 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 generate tipo para dizer azd para criar automaticamente o valor para o parâmetro de entrada. Este tipo é frequentemente utilizado para gerar palavras-passe ou identificadores únicos:

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

    Observação

    O config campo é obrigató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 que azd solicite um grupo de recursos para esta entrada:

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

    Fluxo de prompt:

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

Configuração

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

Nome do campo Tipo Description Default
length int Comprimento total do valor gerado 0
não inferior bool Se verdadeiro, exclui letras minúsculas. false
sem limite superior bool Se verdadeiro, exclui letras maiúsculas. false
nãoNumérico bool Se verdadeiro, exclui números. false
não especial bool Se verdadeiro, exclui caracteres especiais. false
minInferior int Número mínimo de letras minúsculas exigido. 0
minUpper int Número mínimo de letras maiúsculas exigido. 0
minNumérico int Quantidade mínima de números requerida. 0
minEspecial 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

Default

Define o valor inicial de uma lista para realçar. Combine-o com o location tipo 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 suportados para o parâmetro input. Quando azd solicita essa entrada, ele usa a lista de valores permitidos. O default campo nos metadados controla qual opção é definida como a seleção inicial:

Uma captura de ecrã mostrando os valores padrão permitidos durante o prompt.

UsageName

O campo usageName filtra a lista de locais para apenas aqueles onde uma determinada SKU de IA 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 locais do Azure onde 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 usageName para solicitar a localização da IA.

Observação

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