Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Erro criação de VM

Boa noite, pessoal! Tudo bem?

Estou acompanhando um curso de Azure e, em uma das aulas, é demonstrada a criação de uma VM utilizando o Azure Cloud Shell.

Ao executar o mesmo comando apresentado na aula:

*az vm create -n MyFirstVM -g labazcli --image Ubuntu2204 --generate-ssh-key
*
a criação da VM não é concluída. Inicialmente, o erro exibido parece ser um problema do Azure CLI:

The content for this response was already consumed

Porém, analisando o traceback completo, encontrei o erro que parece ser a causa real:

(SkuNotAvailable) The requested VM size for resource
'Following SKUs have failed for Capacity Restrictions:
StandardD2sv5' is currently not available in location 'westus'.

Please try another size or deploy to a different location or different zone.

Ou seja, aparentemente a região westus não possui capacidade disponível para a SKU Standard_D2s_v5 no momento.

Tentei seguir a solução apresentada no tópico, utilizando um comando para verificar quais SKUs estão disponíveis na região, mas o comando não retorna nenhum resultado.

Também tentei criar a VM manualmente pelo Portal do Azure, porém recebo uma mensagem informando que minha subscription não é válida para realizar a criação.

Minha subscription é a Azure Subscription 1, criada para fins de estudo.

Gostaria de entender se o problema está relacionado a:

indisponibilidade/capacidade da região westus;
alguma limitação da minha subscription de estudo;
restrição das SKUs disponíveis para esse tipo de subscription; ou
alguma alteração recente no Azure que fez com que o procedimento apresentado no curso não funcione mais da mesma forma.

Existe alguma forma recomendada de contornar essa situação e conseguir acompanhar a aula, por exemplo utilizando outra região ou outro tamanho de VM?

Obrigado!

1 resposta

Olá!

Sobre a mensagem "The content for this response was already consumed"

Essa mensagem é uma falha do próprio Azure CLI. Quando a implantação falha, a CLI tenta ler a resposta de erro mais de uma vez e acaba exibindo essa mensagem genérica no lugar do erro verdadeiro. Existem vários relatos idênticos no repositório do Azure CLI, inclusive de pessoas seguindo os laboratórios oficiais da Microsoft. Então você está certo: a causa real é o SkuNotAvailable.

o problema provavelmente vem de uma combinação de fatores:

  • Mudança no Azure CLI (hipótese 4): o comando da aula não informa o tamanho da VM, então a CLI usa um tamanho padrão. Esse padrão era o Standard_DS1_v2 e passou a ser o Standard_D2s_v5, um tamanho maior e bem mais disputado. Por isso o mesmo comando da aula se comporta de forma diferente hoje.
  • Capacidade da região (hipótese 1): o trecho "Capacity Restrictions" indica que, naquele momento, a região westus não tinha capacidade para esse tamanho. Isso varia ao longo do tempo e não depende de nada que você tenha feito.
  • Limitações da subscription (hipóteses 2 e 3): assinaturas de avaliação gratuita costumam ter cota de processamento bem reduzida em várias regiões e não permitem solicitar aumento de cota. O fato de o az vm list-skus não retornar nada e de o Portal dizer que a subscription não é válida reforça essa hipótese.

Passo 1: verificar o estado da subscription

A mensagem do Portal é a pista mais importante. Na conta gratuita do Azure, o crédito inicial vale por 30 dias. Quando ele acaba ou expira, a subscription é desabilitada até que seja feito o upgrade para o modelo de pagamento conforme o uso. Pra conferir, rode no Cloud Shell:

az account show --query "{nome:name, estado:state}" --output table

Se o estado aparecer como Enabled, a subscription está ativa e você pode seguir para o Passo 2. Se aparecer Disabled ou Warned, esse é o motivo do erro no Portal.

O nome "Azure Subscription 1" é genérico e não indica o tipo da assinatura. Para saber qual é, abra o Portal, vá em Assinaturas, selecione a sua e veja o campo Oferta: "Avaliação Gratuita" (Free Trial) ou "Pagamento conforme o uso" (Pay-As-You-Go).

Se ela estiver desabilitada, a documentação Reativar uma assinatura desabilitada explica o processo de upgrade. Depois do upgrade, os serviços gratuitos continuam valendo até completar 12 meses, mas o que passar desses limites é cobrado no seu cartão. Por isso, use tamanhos pequenos e apague os recursos ao final da aula.

Se você for estudante de uma instituição de ensino, também vale conhecer o Azure for Students, que oferece crédito sem precisar de cartão. Ele também tem restrições, porém: normalmente libera apenas algumas regiões.

Passo 2: descobrir quais tamanhos estão liberados para você

Por padrão, o az vm list-skus mostra apenas os tamanhos liberados para a sua subscription. Se ele não retornou nada, é um forte sinal de que nenhum tamanho daquela busca está liberado para você naquela região. Adicionando --all, você vê todos os tamanhos, junto com as restrições:

az vm list-skus --location eastus2 --size Standard_B --all --output table

Na coluna Restrictions, None significa que o tamanho está liberado. Já NotAvailableForSubscription indica que ele está bloqueado para a sua subscription naquela região. Você pode testar outras regiões trocando o valor de --location.

Também dá para conferir a sua cota de vCPUs na região:

az vm list-usage --location eastus2 --output table

Se o limite de "Total Regional vCPUs" estiver zerado, a restrição é da subscription, e trocar de tamanho não vai resolver naquela região.

Passo 3: criar a VM informando tamanho e região

Com uma região e um tamanho liberados, adapte o comando da aula deixando os dois explícitos:

az vm create -n MyFirstVM -g labazcli --image Ubuntu2204 --size Standard_B1s --location eastus2 --generate-ssh-keys

O Standard_B1s é um tamanho pequeno, suficiente para o laboratório e incluído nos serviços gratuitos da conta de avaliação. O --location pode ser diferente da região do grupo de recursos, então não é preciso recriar o labazcli. Se o erro de capacidade aparecer de novo, experimente outra região que tenha aparecido como liberada no Passo 2. Regiões menos procuradas costumam ter mais disponibilidade.

A documentação Resolver erros de SKU não disponível traz mais detalhes sobre esse diagnóstico.

Ao terminar a prática, apague o grupo de recursos para não consumir crédito à toa:

az group delete -n labazcli --yes --no-wait