Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este diagnóstico ocorre quando atribui um valor a um tipo de dado incompatível.
Description
Espera-se um valor de tipo <data-type> mas o valor fornecido é de tipo <data-type>.
Nível
Aviso / Erro
Solução
Use o tipo de dados esperado. Se o valor fornecido for um token, inclua-o na função any() para mitigar o problema.
Exemplos
O exemplo seguinte eleva o diagnóstico porque o tipo de dado esperado é uma cadeia. O valor real fornecido é um inteiro:
var myValue = 5
output myString string = myValue
Pode corrigir o diagnóstico fornecendo um valor de cadeia:
var myValue = '5'
output myString string = myValue
Em Azure Bicep, encontrar o Erro BCP033 ao usar deployment().location como valor padrão para um parâmetro restrito por um decorador @allowed é um cenário comum. Este erro ocorre devido ao rigoroso mecanismo de segurança de tipos em tempo de compilação do Bicep. Por exemplo:
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
param location string = deployment().location
Se quiser manter a conveniência de usar por defeito a localização de metadados da implementação atual, pode contornar a verificação de tipo em tempo de compilação usando a função any() da Bicep. Esta função diz ao compilador para tratar a expressão como de tipo vago:
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
// The any() function suppresses the BCP033 type-mismatch error
param location string = any(deployment().location)
Se a sua implementação estiver rigidamente ligada a uma única região, pode evitar usar os metadados dinâmicos deployment().location por completo e atribuir explicitamente um valor padrão que exista dentro da sua lista.
Próximos passos
Para obter mais informações sobre o diagnóstico do Bíceps, consulte Diagnóstico do núcleo do Bíceps.