Erro na criação de Fila no Azure

Cloud Computing & Microsoft Azure

O PROBLEMA

Estava eu trabalhando tranquilamente em uma aplicação de teste para o Windows Azure quando tive a necessidade de criar uma Queue(fila).

Tudo corria na mais perfeita harmonia, já tinha criado algumas filas neste mesmo projeto sem nenhum tipo de problema. O código usado foi copy and paste dos demais e quando compilei o projeto e o resultado foi a tela amarela da morte como na imagem aseguir:

01

Reparem as mensagens de erro retornadas:

  • [WebException: The remote server returned an error: (400) Bad Request.]
  • [StorageClientException: One of the request inputs is out of range.]

Esta exceção ocorre no método CreateIfNotExist(), que cria a fila caso a mesma não exista. O trecho de código é o seguinte:

2

Quando crio a fila, passo uma string para referenciar seu nome. O grande problema é que não pode ser qualquer string…

A SOLUÇÃO

Existem algumas “limitações” na criação de Blobs, Tables e Queues no Azure. Neste caso, o nome referenciado para a fila desobedecia uma das regras de nomeação.

Na versão atual do SDK(1.4), os nomes de Fila devem seguir as seguintes regras:

  • começar com uma letra ou número;
  • conter apenas letras, números e hífen(-);
  • primeira e a última letra deve ser alfanumérico;
  • não deve conter espaços;
  • o hífen não pode ser a primeira ou última letra do nome;
  • não é possível ter dois hífens consecultivos;
  • todas as letras devem ser minúsculas;
  • o nome da fila deve ter de 3 a 63 caracteres.

 

Se o nome da fila especificada não é um nome válido, o método Criar Fila retorna o código de status 400(Bad Request), juntamente com informações de erro adicionais.

Segue a lista com os Códigos de Erro nos Serviços de Fila:

3

Para solucionar o erro da minha aplicação, eu simplesmente coloquei o nome da fila como All Lowercase (tudo em minúsculo)!

PS: A grande questão aqui é a mensagem de erro que não deixa claro o motivo da exceção. Não há sinalização de que o nome da fila é o reponsável pelo erro, logo há uma “curva maior” para identificar e tratar o erro.

Um grande abraço e ótimo estudo!


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


2 minutes to read