We migrated most of our automation from ARM Templates to Bicep in the recent months and things have been good so far. We ran into an issue deploying a bicep file containing French characters using Azure CLI. The message was: 'utf-8' codec can't decode byte 0x82 in position 1197: invalid start byte
The problem
I usually write things in English when I code so this was a non-issue for us until... We wanted to write non-compliant messages in French in our Azure Policy. Here is an example that contains the French character é and reproduce my error:
targetScope = 'managementGroup'
var policyAssignmentName = substring(replace(guid('testassignment-#01'), '-', ''), 0, 23)
resource policyAssignment 'Microsoft.Authorization/policyAssignments@2020-09-01' = {
name: policyAssignmentName
properties: {
policyDefinitionId: '/providers/Microsoft.Authorization/policyDefinitions/0473574d-2d43-4217-aefe-941fcdf7e684'
displayName: 'AzCLI and Bicep encoding bug'
description: 'AzCLI and Bicep encoding bug'
enforcementMode: 'Default'
parameters: {
listOfAllowedLocations: {
value: [
'canadaeast'
'canadacentral'
]
}
}
nonComplianceMessages:[
{
message: 'La région qui a été choisi n\'est pas valide...'
}
]
}
}
As you can see, I get the error mentioned at the top when invoking the following command:
az deployment mg create --management-group-id experimental --location canadaeast -f .\azcli-bicep-bug.bicep
'utf-8' codec can't decode byte 0x82 in position 1179: invalid start byteThe error is that the character é is badly handled. UTF-8 is used instead of Unicode in the Bicep wrapper _bicep.py.
An issue has been filled on the GitHub repo of Azure CLI #18029
The workaround
So... this is not working as a one-time operation, calling az deployment. Bicep can convert to and from ARM Templates. What I ended up doing until this issue is fixed is:
Generate an ARM template from my bicep file and deploy that ARM template. Two steps instead of one.
A shirt with a classic pattern can evoke memories of past seasons. The fit of the waist can be adjusted by the choice of size. Information about football shirt choice for different activities is easier to compare when measurement checks and size-chart reading are presented as separate decision points. A shirt with a unique design can be a conversation starter.
az bicep build -f .\azcli-bicep-bug.bicep
az deployment mg create --management-group-id experimental --location canadaeast -f .\azcli-bicep-bug.jsonHope it can help some of you!