Configurando o BD do Development Storage – Azure SDK

Vamos brincar um pouco com o Azure?

Depois que você instala o SDK do Azure (https://www.microsoft.com/downloads/details.aspx?FamilyID=80e3eabf-0507-4560-aeb6-d31e9a70a0a6&displaylang=en) pode disparar o processo do Development Storage, responsável por simular os diferentes modelos de armazenamento existentes na fundação do Azure (blobs, queues e tables). Mas se você não leu a documentação antes de disparar o processo, pode ser que você veja o seguinte erro:

DevStorage error 

Explico: por padrão o processo do Development Storage vai tentar criar o banco de dados com a estrutura necessária para fazer os três tipos de armazenamento em uma instância nomeada do SQL Server Express, a “localhost\SQLExpress”.

Mas e se você não possui essa instância do SQL Server Express configurada ou quer usar uma outra instância já instalada, seja ela express ou não? A documentação oficial não nos entrega nenhum “how-to”, então resolvi fazer alguns testes e descrevo aqui o resultado.

Alterando a configuração do Development Storage 

Partindo do pressuposto que a instância do SQL Server (2005 ou 2008) está instalada, primeiramente vamos disparar o “Windows Azure SDK Command Prompt”. Nota: para este e os próximos passos, eu estou executando-os com elevação de privilégio (run as administrator), por falta de pesquisa para definição das permissões necessárias. Sabe quais são? Deixe um comentário…

Através da documentação vejo que existe o comando DSInit (Development Storage Init), que é bem sugestivo, então executo o comando “DSInit /Server: <instância>” no command prompt aberto, onde “<instância>” é o nome da sua instância, ok? Aqui está o resultado:

DSInit

 

Nota: O DSInit é chamado automaticamente quando o Development Storage é iniciado, caso não exista um ambiente já configurado, então você não precisaria fazer esse passo manualmente (a documentação até recomenda não fazer), mas eu preferi fazer tudo passo a passo para entender melhor. :-)

É visível na figura acima que o usuário responsável por executar o DSInit precisa ter acesso ao SQL Server e as permissões necessárias para criar um banco de dados. Usando o Management Studio é possível ver a estrutura criada (abaixo).

DevStorageDB

Uma vez criado o banco de dados DevelopmentStorageDb eu inicializei o processo do DevStorage e recebi o mesmo erro da primeira figura, indicando que não existe o banco de dados “ .\SQLExpress”, então ainda é preciso configurar mais alguma coisa.

Navegue até o diretório bin no caminho de instalação do SDK (“C:\Program Files\Windows Azure SDK\v1.0\bin”, por padrão) e faça uma cópia de segurança do arquivo “DevelopmentStorage.exe.config”. Depois abra o arquivo para editá-lo, configurando o servidor a ser utilizado. Nota: por restrições de segurança, talvez seja melhor copiá-lo para outro local, alterá-lo e depois substituir o arquivo original.

DevStorage config

Eu editei o arquivo nos dois lugares marcados em amarelo, substituindo-os pelo nome da instância utilizada. Fiz isso porque além do development storage eu também quero colocar os bancos/tabelas criadas no mesmo servidor SQL Server.

Feito isso você pode disparar o processo do Development Storage e notar que ele será executando sem problema, conforme figura abaixo.

image

Pronto, se você chegou até aqui está com o Development Storage apontando para a instância do SQL Server que você escolheu!

Configurando os exemplos

Junto com o SDK do Azure também estão disponíveis uma série de exemplos para você se divertir, sendo necessário usar o “rundevstore.cmd” para fazer o build dos projetos e configurar o development storage com a estrutura das tabelas utilizadas por um dos exemplos.

Quando executei o cmd diretamente, o processo estava indo bem até aparecer um problema relacionado com o acesso ao SQL Server. Dei uma olhada nos arquivos existentes e editei o arquivo “MSBuild\Microsoft.Samples.ServiceHosting.targets”, adicionando o “ /Server:<instância> ” no local marcado em amarelo (abaixo).

SamplesConfig

Depois disso o processo de montagem dos exemplos foi executado com sucesso.

Que venha toda a plataforma Azure…

[]s
Luciano Caixeta Moreira
luciano.moreira@microsoft.com
===============================================
This post is provided "AS IS" and confers no right
===============================================