Hospedando site estático no Azure via portal

Daniel Padua Ferreira
Daniel Padua Blog
6 min readJul 11, 2021

--

Neste artigo irei demonstrar o quão fácil é realizar o deploy de uma aplicação web estática (que não faz uso de processamento do lado do servidor) na infraestrutura do Azure utilizando o Azure Storage e fazendo a entrega usando o Visual Studio Code.

Introdução

Muitas vezes quando temos requisitos onde não é necessário haver algum tipo de processamento do front-end do lado do servidor, podemos fazer uso de aplicações web estáticas (SPA, MPA). Com o advento dos frameworks javascript (react, angular, vue, etc…) e os geradores de site estáticos (gatsbyjs, jekyll, hugo e etc…) os sites estáticos passaram a ficar cada vez melhores, além de performarem muito bem (desde que otimizados) e até muitas vezes atender a maioria dos requisitos de qualquer projeto.

Neste artigo introdutório, irei mostrar como realizar o deploy na infraestrutura do Azure, usando o Azure Storage utilizando o fonte de um website que oferece um jogo da velha.

Requisitos

Criando o Azure Storage

O Azure Storage é a solução de armazenamento de objetos (estruturados e não-estruturados) da Microsoft para cloud. Ele engloba vários serviços, para diferentes fins:

  • Azure Blobs: Uma object store massiva para guardar dados do tipo texto ou binário, suporta também analytics big data através do Data Lake Storage Gen2
  • Azure Files: Um compartilhamento de arquivos (file share) completamente gerenciado para uso cloud ou on-premises
  • Azure Queues: Uma área confiável para guardar dados de troca mensagens entre componentes de aplicações
  • Azure Disks: Um storage para guardar volumes para máquinas virtuais Azure (Azure VMs)

Neste artigo iremos utilizar o serviço Azure Blobs, que irá armazenar os arquivos do nosso site estático.

Primeiramente, vamos criar um grupo de recursos — ou resource group (utilizado para agrupar recursos Azure), para separar os recursos deste guia do resto dos seus possível recursos. Acesse o Portal do Microsoft Azure, faça o login e clique em “Resource Groups” (ou Grupos de Recurso se estiver em português) no menu de favoritos (do lado esquerdo da tela), ou utilize a barra de pesquisa, em seguida clique no botão “Create”:

Criando um Resource Group no Portal da Azure

Escolha o nome do Resource Group e a localização do datacenter e clique em Create:

Preenchendo informações do Resource Group

Certifique-se de que está navegando dentro do Resource Group criado na etapa anterior e clique em Create > Marketplace para adicionar um recurso:

Adicionando um recurso

Pesquise por storage aperte enter e selecione “Storage Account” da Microsoft, clique em Create:

Pesquisando o Azure Storage

Preencha as informações necessárias conforme imagem, e clique em “Review + create”:

Preenchendo informações do storage

Lembre-se que o nome do storage deve ser único globalmente (único entre todos os storages registrados no Azure), ter entre 3 e 24 caracteres e deve conter apenas letras minúsculas e números, sem caracteres especiais

Deixe todas as informações com os valores padrão e clique em “Create”:

Adicionando o storage

O Azure irá iniciar o processo de criação do storage e quando estiver tudo pronto a tela a seguir será apresentada, clique no botão “Go to resource”:

Storage criado com sucesso

Se realmente estiver tudo certo, a dashboard do seu storage será exibida conforme a seguir:

Dashboard do Azure Storage

Instalando a extensão Azure Storage

Com a infraestrutura criada e pronta para abrigar seu site estático, é hora de garantir que seu Visual Studio Code tenha as extensões necessárias para poder publicar os arquivos do projeto no Azure Storage criado. Para isto, abra o vscode e no menu do lado esquerdo vá em Extensions ou aperte ctrl+shift+X e pesquise por azure storage:

Pesquisando a extensão do azure storage

Ou simplesmente siga este link e clique em Install.

Esta extensão irá instalar automáticamente a extensão Azure Account onde irá criar o menu Azure no lado esquerdo da tela, no qual você irá realizar login utilizando seu e-mail e senha Azure. Siga os passos que a extensão irá lhe pedir e garanta que sua conta esteja logada e suas subscriptions apareçam conforme imagem:

Extensão Azure Storage login com sucesso

Clonando e publicando a aplicação

Agora vamos preparar o site estático para o deploy no Azure, no Visual Studio Code abra o terminal (menu superior > terminal > new terminal ou ctrl+shift+` ou cmd+shift+` no mac) navegue e escolha o diretório que preferir para abrigar o projeto. Em seguida clone o projeto utilizando e navegue até ele com:

Agora abra o diretório criado no Visual Studio Code: File > Open Folder > ...:

Estrutura do projeto

Para entregar o projeto no Azure Storage criado, é necessário simplesmente clicar no diretório que deseja entregar com o botão direito e em seguida escolher a opção Deploy to static Website via Azure Storage. Como queremos entregar todos os arquivos do diretório aberto, vamos clicar com o botão direito sobre o espaço vazio na raíz da árvore de arquivos conforme a seguir:

Clique na opção indicada em vermelho para entregar todos os arquivos

Na sequência irão aparecer algumas opções para que você possa indicar à extensão em qual Azure Storage você quer entregar os arquivos, caso você tenha mais de uma subscription, você deverá selecionar a mesma que criou o Storage nos passos anteriores e em seguida selecione-o:

Selecione o mesmo Storage criado nos passos anteriores

Ao selecionar, a extensão poderá te avisar que a opção de hospedar sites estáticos não está habilitada no Storage selecionado e irá perguntar se você deseja habilitar. Escolha a opção Enable website hosting.

Em seguida você será questionado sobre qual será o nome do arquivo html que deverá ser considerado o renderizado ao usuário atingir a URL raíz do website, deixe escrito index.html e aperte enter. Na sequência irá te perguntar sobre qual nome de arquivo considerar quando o usuário tentar acessar algum documento que não existe. No caso deste projeto não há tratamento então podemos seguir com o index.html sugerido, mas caso seu projeto tenha indique o nome do arquivo correto.

Pressione enter novamente e o deploy irá iniciar. Após o término com sucesso, a mensagem a seguir deverá aparecer no canto inferior direito de sua tela:

Deploy feito com sucesso

Navegue até o link indicado na mensagem e veja seu site!

Website Pronto!

Conclusão

Em apenas alguns minutos é possível entregar um site estático no Azure utilizando o Visual Studio Code. Mas não apenas fácil, é barato também. Na verdade acredito que o que torna este modelo mais atraente é o preço.

Neste momento eu mantenho 2 sites estáticos no Azure com poucos acessos e o custo gira em torno de R$13,00 ao mês, mas o cálculo de custo é feito com base por largura de banda (transferência de dados) e quantidade de storage usado (tamanho). O melhor jeito de ter uma noção de quanto irá gastar é ver na própria calculadora do Azure: https://azure.microsoft.com/en-us/pricing/calculator/?service=storage.

Espero que este guia tenha sido útil para você, obrigado e até a próxima!

Caso tenha achado que esse post foi útil e quiser me apoiar, você pode fazer isto me pagando um café usando o botão acima!

Publicado originalmente em https://blog.danielpadua.dev 3 de Julho de 2021.

--

--

Daniel Padua Ferreira
Daniel Padua Blog

Microsoft Certified Professional (MCP), Certified Tester Foundation Level (CTFL), Software Engineer, Technology and Cryptocurrencies enthusiast