Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esse diagnóstico ocorre quando você atribui um valor de um tipo de dados incompatível.
Descrição
Esperado um valor de tipo <data-type> , mas o valor fornecido é do tipo <data-type>.
Nível
Aviso / Erro
Solução
Use o tipo de dados esperado. Se o valor fornecido for um token, coloque-o na função any() para atenuar o problema.
Exemplos
O exemplo a seguir gera o diagnóstico porque o tipo de dados esperado é uma cadeia de caracteres. O valor real fornecido é um número inteiro:
var myValue = 5
output myString string = myValue
Você pode corrigir o diagnóstico fornecendo um valor de cadeia de caracteres:
var myValue = '5'
output myString string = myValue
Em Azure Bicep, encontrar o Erro BCP033 ao usar deployment().location como um valor padrão para um parâmetro restrito por um decorador @allowed é um cenário comum. Esse erro ocorre devido ao mecanismo de segurança de tipo de tempo de compilação estrito do Bicep. Por exemplo:
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
param location string = deployment().location
Se você quiser manter a conveniência de usar o padrão para o local de metadados da implantação atual, poderá ignorar a verificação de tipo de tempo de compilação usando a função any() do Bicep. Essa função informa ao compilador para tratar a expressão como livremente tipada:
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
// The any() function suppresses the BCP033 type-mismatch error
param location string = any(deployment().location)
Se sua implantação estiver rigidamente associada a uma única região, você poderá evitar o uso total dos metadados dinâmicos deployment().location e atribuir explicitamente um valor padrão que existe dentro de sua lista.
Próximas etapas
Para obter mais informações sobre o diagnóstico do Bicep, consulte o diagnóstico principal do Bicep.