Deploy e Segurança
Área: Backend | Nível recomendado: Iniciante
Esta missão foca em levar sua aplicação para a nuvem, utilizando o Render.com para hospedagem. Aprenderemos também a importância das variáveis de ambiente para a segurança do projeto, utilizando o arquivo .env para armazenar informações sensíveis.
Vídeo
Link direto: https://youtu.be/zeO6BYTfLls
Tópicos
Preparação para o Deploy:
Revisão do código para garantir que está pronto para produção.
Instalação de pacotes necessários para produção, como o
dotenv.
Segurança de Informações Sensíveis:
Introdução ao conceito de variáveis de ambiente.
Criação e configuração do arquivo
.env.
Deploy no Render.com:
Criação de uma conta no Render.com.
Configuração do projeto no Render.com para deploy.
Lançamento da aplicação no ambiente de produção.
Material de Apoio
Repositório no GitHub
PDF para Download
Miro
Exercícios de Fixação
Use esses exercícios para reforçar o que acabou de aprender. Se errar, leia a explicação para entender melhor o conceito.
Qual comando usamos para instalar o pacote dotenv?
A) npm install dotenv
B) npm install env
C) npm install dotenv-cli
D) npm install environment
Resposta correta
Qual comando usamos para instalar o pacote dotenv?
Resposta Correta: A
Feedback: O comando npm install dotenv é usado para instalar o pacote dotenv, que carrega variáveis de ambiente de um arquivo .env para process.env.
Resposta correta
Complete o código para carregar as variáveis de ambiente do arquivo .env.
Resposta Correta:
Feedback: A função require('dotenv').config() carrega as variáveis de ambiente do arquivo .env, e process.env.DATABASE_URL acessa a URL do banco de dados.
Verdadeiro ou Falso: As variáveis de ambiente devem ser comitadas no repositório.
A) Verdadeiro
B) Falso
Resposta correta
Verdadeiro ou Falso: As variáveis de ambiente devem ser comitadas no repositório.
Resposta Correta: B
Feedback: Falso. As variáveis de ambiente contêm informações sensíveis e não devem ser comitadas no repositório. Em vez disso, devem ser armazenadas em arquivos .env que são ignorados pelo Git.
Resposta correta
Qual serviço usamos para realizar o deploy da aplicação?
Resposta Correta: B
Feedback: Render.com é o serviço utilizado para realizar o deploy da aplicação nesta missão.
Qual é a importância de usar variáveis de ambiente para armazenar informações sensíveis, como a URL do banco de dados?
A) Para facilitar o compartilhamento de credenciais com devs da equipe.
B) Para garantir que as informações sensíveis não sejam expostas no código-fonte.
C) Para permitir que o código-fonte seja mais compacto.
D) Para evitar a necessidade de autenticação ao acessar o banco de dados.
Resposta correta
Qual é a importância de usar variáveis de ambiente para armazenar informações sensíveis, como a URL do banco de dados?
Resposta Correta: B
Feedback: Usar variáveis de ambiente para armazenar informações sensíveis garante que essas informações não sejam expostas no código-fonte, aumentando a segurança do projeto.
Exercícios de Validação
Esses exercícios testarão sua compreensão prática. Revise o feedback para melhorar suas habilidades.
Desafio de Código
Crie um script que carregue variáveis de ambiente a partir de um arquivo .env e exiba essas variáveis no console. O script deve também validar se todas as variáveis necessárias estão presentes.
Implementar o script no arquivo
config.js.
Resposta esperada
Feedback: Certifique-se de que todas as variáveis de ambiente necessárias estão definidas no arquivo .env e que o script está validando corretamente a presença dessas variáveis.
Revisão de Código
Analise o código a seguir, encontre e corrija o erro relacionado ao uso de variáveis de ambiente e segurança.
Resposta Correta
Erros:
Variáveis sensíveis como a URL do banco de dados não devem estar hardcoded no código.
Falta o carregamento das variáveis de ambiente a partir do arquivo
.env.
Feedback: As variáveis sensíveis devem ser armazenadas em um arquivo .env e carregadas usando o pacote dotenv. Isso aumenta a segurança do projeto ao evitar a exposição de informações sensíveis no código-fonte.
Projeto Prático
Implemente um CRUD completo para gerenciar uma entidade de "Eventos" em uma aplicação usando ExpressJS e MongoDB. Os eventos devem ter as propriedades "nome", "data" e "local". Crie endpoints para adicionar, listar, atualizar e deletar eventos. Se o evento não for encontrado, o endpoint deve responder com "Evento não encontrado". Além disso, implemente o uso de variáveis de ambiente para as informações sensíveis e faça o deploy no Render.com.
Tarefas
Configuração Inicial:
Inicialize um novo projeto NodeJS.
Instale o ExpressJS, MongoDB Driver e dotenv.
Configure o Nodemon para reiniciar o servidor automaticamente.
Crie um arquivo
.enve adicione as variáveis de ambiente necessárias.
Conexão com o MongoDB:
Conecte-se ao MongoDB utilizando o MongoClient e as variáveis de ambiente.
Inicialize o banco de dados e a collection "eventos".
Implementação dos Endpoints:
Implemente um endpoint para adicionar um novo evento (
POST /eventos).Implemente um endpoint para listar todos os eventos (
GET /eventos).Implemente um endpoint para obter um evento específico por ID (
GET /eventos/:id).Implemente um endpoint para atualizar um evento por ID (
PUT /eventos/:id).Implemente um endpoint para deletar um evento por ID (
DELETE /eventos/:id).
Deploy da Aplicação:
Realize o deploy da aplicação no Render.com e garanta seu funcionamento correto.
Código Esperado
Feedback Detalhado
Verificação dos Endpoints: Certifique-se de testar cada rota (
/eventos,/eventos/:id,/eventoscom POST, PUT e DELETE) acessandohttp://localhost:3000e verificando as respostas.Uso de Variáveis de Ambiente: Certifique-se de que as informações sensíveis, como a URL do banco de dados, estão sendo carregadas do arquivo
.env.Deploy: Realize o deploy da aplicação no Render.com e garanta que todas as funcionalidades estejam funcionando corretamente no ambiente de produção.
Last updated