Estou tentando atribuir uma identidade gerenciada atribuída pelo usuário ao WebApp usando a CLI do Azure. O comando segue a sintaxe abaixo:
#This command fetches the resource id of my existing managed identity with name 'myIdentity'
identityResourceId=$(az identity show --name 'myIdentity' \
--resource-group 'myResourceGroup' --query id -o tsv)
Quando tento imprimir o valor da variável $identityResourceId
, ele mostra a seguinte saída
echo "ResourceId: $identityResourceId"
ResourceId: /subscriptions/mySubscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity
Assim que tento usar essa variável no comando abaixo, ele lança Code:LinkedInvalidPropertyId
az webapp identity assign --resource-group myResourceGroup --name myWebApp --identities $identityResourceId
Mensagem de erro:
(LinkedInvalidPropertyId) Property id 'C:/Program Files/Git/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity' at path '' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'.
Code: LinkedInvalidPropertyId
Message: Property id 'C:/Program Files/Git/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity' at path '' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'.
Não tenho certeza do porquê o ID do recurso está sendo prefixado com C:/Arquivos de Programas/Git/
Parece que o AzureCLI está interpretando incorretamente o valor
$identityResourceId
como um caminho relativo e, portanto, está adicionando "C:/Arquivos de Programas/Git".Para evitar isso, você pode tentar colocar sua variável entre aspas duplas, assim:
Dessa forma, o AzureCLI ainda usará a expansão de variáveis corretamente, mas não interpretará o valor como um caminho relativo.
EDIT: Se estiver usando o GitBash, você vai querer adicionar
export MSYS_NO_PATCHCONV=1
no começo do script para interromper o comportamento padrão do Git Bash de conversões automáticas de caminho.Se você usar,
windows git bash
tente adicionar double\\
para escapar.Ou simplesmente use
powershell script
, é mais fácil.