La semana pasada me encontré con el siguiente error al intentar ejecutar el upload de un DNS Zone file en una Azure DNS Zone a través del Módulo Az. Esto sucedió tanto en Cloud Shell como en PowerShell:
Code: NoRegisteredProviderFound
Message: No registered resource provider found for location {location}
and API version {api-version} for type {resource-type}.
En primera instancia, debemos asegurarnos que el provider que estamos utilizando este registrado. En este caso para dnszones, el provider es Network.
- az provider list –output table
- az provider show –namespace Microsoft.network –output table
- az provider show –namespace Microsoft.Network –query “resourceTypes[?resourceType==’dnszones’]”
Buscando en la web, pude encontrar varios Issues registrados a MS:
Segun se informa en los issues, la problematica se encuentra en Backend de MS.
Workaround
Por ahora no hay una solución definitiva al issue. El workaround propuesto es hacer un downgrade de la versión de Azure CLI.
En este caso instalé la versión en una máquina virtual y pude ejecutar el cambio.
Invoke-WebRequest -Uri https://azurecliprod.blob.core.windows.net/msi/azure-cli-2.30.0.msi -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList ‘/I AzureCLI.msi /quiet’; rm .\AzureCLI.msi
Al realizar esto pude ejecutar la operación que había fallado previamente.
En este caso, se trató de un escenario bastante simple, pueden darse ciertas complejidades en escenarios a mayor escala en Azure DevOps o GitHub Actions.
Estos son ejemplos para la modificación en Azure DevOps y GitHub Actions añadidos por colaboradores en los casos de GitHub:
- task: PowerShell@2 displayName: 'Revert to az cli version 2.49.0' inputs: targetType: 'inline' pwsh: true script: | pip install -Iv azure-cli==2.49.0 --extra-index-url https://azurecliprod.blob.core.windows.net/edge
- name: Install Azure cli
run: |
sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg
curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
AZ_REPO=$(lsb_release -cs)
echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
sudo apt-get update
sudo apt-get install --allow-downgrades azure-cli=2.49.0-1~jammy
Leave a Reply