Lab: Configuração do Ambiente
Objetivos do Lab
Ao final deste lab, você terá:
- ✅ Um ambiente de trabalho completo e funcional
- ✅ Docker Desktop instalado e operacional
- ✅ AWS CLI v2 configurado com um perfil LocalStack
- ✅ LocalStack iniciado e testado
- ✅ Um mini-relatório com evidências da configuração
Duração Estimada
1 a 2 horas (dependendo do seu sistema e conexão de Internet)
Pré-requisitos
- Computador com Windows 10/11, macOS ou Linux
- Permissões de administrador
- Conexão de Internet estável
- Pelo menos 10 GB de espaço livre em disco
Parte 1: Instalação do Docker Desktop
Etapas
1.1 Baixar o Docker Desktop
Acesse: https://www.docker.com/products/docker-desktop/
Baixe a versão correspondente ao seu sistema.
1.2 Instalar o Docker Desktop
- Windows: Clique duas vezes no instalador e siga o assistente
- macOS: Arraste o Docker para Aplicativos
- Linux: Siga as instruções da sua distribuição
1.3 Iniciar o Docker Desktop
Abra o Docker Desktop pelo menu Iniciar (Windows) ou Aplicativos (macOS).
Aguarde até que o ícone do Docker indique "Docker is running".
1.4 Verificar a instalação
Abra um terminal e execute:
docker --version
docker run hello-world
Validação Parte 1
Tire uma captura de tela mostrando:
- A saída do
docker --version - A mensagem "Hello from Docker!" do
docker run hello-world
Nomeie este arquivo: 01-docker-version.png
Parte 2: Instalação do AWS CLI v2
Etapas
2.1 Baixar o AWS CLI v2
- Windows: https://awscli.amazonaws.com/AWSCLIV2.msi
- macOS: https://awscli.amazonaws.com/AWSCLIV2.pkg
- Linux: Veja os comandos abaixo
2.2 Instalar
Windows:
# Clique duas vezes em AWSCLIV2.msi e siga o assistente
# OU
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
macOS:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
Linux:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
2.3 Verificar a instalação
Feche e reabra seu terminal, então:
aws --version
2.4 Configurar o perfil LocalStack
aws configure --profile localstack
Digite os seguintes valores:
AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json
2.5 Verificar a configuração
aws configure list --profile localstack
Validação Parte 2
Tire uma captura de tela mostrando:
- A saída do
aws --version - A saída do
aws configure list --profile localstack
Nomeie este arquivo: 02-aws-cli-config.png
Parte 3: Inicialização do LocalStack
Etapas
3.1 Criar uma pasta de trabalho
# Crie uma pasta para este curso
mkdir aws-course
cd aws-course
3.2 Criar o arquivo docker-compose.yml
Crie um arquivo docker-compose.yml com o seguinte conteúdo:
version: '3.8'
services:
localstack:
container_name: localstack
image: localstack/localstack:latest
ports:
- "4566:4566"
- "4510-4559:4510-4559"
environment:
- SERVICES=s3,lambda,sqs,sns,dynamodb,cloudwatch,cloudformation,iam
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
volumes:
- "./localstack-data:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
3.3 Iniciar o LocalStack
docker-compose up -d
Ou sem docker-compose:
docker run -d \
--name localstack \
-p 4566:4566 \
-e SERVICES=s3,lambda,sqs,dynamodb,cloudwatch,cloudformation \
localstack/localstack
3.4 Aguarde a inicialização (30-60 segundos)
# Verifique se o container está rodando
docker ps
# Veja os logs (opcional)
docker logs localstack
3.5 Verificar o estado de saúde
# Linux/macOS
curl http://localhost:4566/_localstack/health
# Windows PowerShell
Invoke-RestMethod http://localhost:4566/_localstack/health
Validação Parte 3
Tire uma captura de tela mostrando:
- A saída do
docker pscom o container localstack - A saída do health check
Nomeie este arquivo: 03-localstack-running.png
Parte 4: Teste de Comandos AWS
Etapas
4.1 Configurar o alias (opcional, mas recomendado)
Windows PowerShell:
# Teste primeiro sem alias
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack
macOS/Linux:
alias awslocal='aws --endpoint-url=http://localhost:4566 --profile localstack'
4.2 Criar um bucket S3
# Com alias
awslocal s3 mb s3://meu-primeiro-bucket-teste
# Sem alias (Windows)
aws --endpoint-url=http://localhost:4566 s3 mb s3://meu-primeiro-bucket-teste --profile localstack
4.3 Listar os buckets
awslocal s3 ls
Resultado esperado:
2024-12-18 10:30:00 meu-primeiro-bucket-teste
4.4 Criar um arquivo de teste
# Criar um arquivo local
echo "Hello AWS LocalStack!" > test.txt
# Fazer upload para o S3
awslocal s3 cp test.txt s3://meu-primeiro-bucket-teste/
# Verificar
awslocal s3 ls s3://meu-primeiro-bucket-teste/
4.5 Baixar o arquivo
awslocal s3 cp s3://meu-primeiro-bucket-teste/test.txt downloaded.txt
cat downloaded.txt
4.6 Limpar
# Remover o arquivo do bucket
awslocal s3 rm s3://meu-primeiro-bucket-teste/test.txt
# Remover o bucket
awslocal s3 rb s3://meu-primeiro-bucket-teste
Validação Parte 4
Tire uma captura de tela mostrando:
- A criação do bucket (
s3 mb) - A listagem do bucket com o arquivo (
s3 ls) - O conteúdo do arquivo baixado
Nomeie este arquivo: 04-aws-s3-test.png
Parte 5: Teste Lambda (Bônus)
Etapas
5.1 Criar uma função Lambda simples
Crie um arquivo lambda_function.py:
def handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from LocalStack Lambda!'
}
5.2 Compactar a função
# Linux/macOS
zip function.zip lambda_function.py
# Windows PowerShell
Compress-Archive -Path lambda_function.py -DestinationPath function.zip
5.3 Criar a função Lambda
awslocal lambda create-function \
--function-name minha-primeira-funcao \
--runtime python3.9 \
--handler lambda_function.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::000000000000:role/lambda-role
5.4 Invocar a função
awslocal lambda invoke \
--function-name minha-primeira-funcao \
--payload '{}' \
output.txt
cat output.txt
5.5 Listar as funções
awslocal lambda list-functions
Validação Parte 5
Tire uma captura de tela mostrando:
- A criação da função Lambda
- A invocação bem-sucedida com o resultado
Nomeie este arquivo: 05-lambda-test.png
Entregáveis do Lab
Mini-Relatório "Ambiente Pronto"
Crie um documento (Word, PDF ou Markdown) contendo:
1. Página de título
- Nome do estudante
- Data
- Título: "Lab 1 - Configuração do Ambiente AWS"
2. Capturas de tela Inclua as 4 capturas obrigatórias (5 com o bônus Lambda):
01-docker-version.png02-aws-cli-config.png03-localstack-running.png04-aws-s3-test.png05-lambda-test.png(bônus)
3. Tabela de resumo
| Componente | Versão | Status |
|---|---|---|
| Docker | X.X.X | ✅ Instalado |
| AWS CLI | X.X.X | ✅ Configurado |
| LocalStack | latest | ✅ Funcional |
4. Problemas encontrados (se aplicável) Descreva brevemente qualquer problema encontrado e como você resolveu.
5. Checklist final
- Docker Desktop instalado e funcional
- AWS CLI v2 instalado
- Perfil LocalStack configurado
- LocalStack iniciado
- Teste S3 bem-sucedido (criação de bucket, upload de arquivo)
- Teste Lambda bem-sucedido (bônus)
Grade de Avaliação
| Critério | Pontos |
|---|---|
| Docker instalado e funcional | 2 |
| AWS CLI instalado e configurado | 2 |
| LocalStack iniciado | 2 |
| Teste S3 bem-sucedido | 2 |
| Capturas de tela completas | 1 |
| Relatório bem estruturado | 1 |
| Total | 10 |
Bônus: Teste Lambda bem-sucedido (+2 pontos)
Solução de Problemas Comuns
Docker não inicia
Windows:
- Ative a virtualização no BIOS
- Ative o WSL2:
wsl --install - Reinicie o computador
AWS CLI não reconhecido
- Feche e reabra o terminal
- Verifique o PATH
- Reinstale o AWS CLI
LocalStack não responde
- Aguarde 60 segundos após iniciar
- Verifique os logs:
docker logs localstack - Reinicie:
docker restart localstack
Erro "No credentials"
# Reconfigurar
aws configure --profile localstack
# Verificar
aws configure list --profile localstack
Resumo dos Comandos
# Docker
docker --version
docker run hello-world
docker ps
docker logs localstack
# AWS CLI
aws --version
aws configure --profile localstack
aws configure list --profile localstack
# LocalStack
docker-compose up -d
curl http://localhost:4566/_localstack/health
# Testes S3
awslocal s3 mb s3://bucket-name
awslocal s3 ls
awslocal s3 cp file.txt s3://bucket/
awslocal s3 rm s3://bucket/file.txt
awslocal s3 rb s3://bucket-name
# Testes Lambda
awslocal lambda create-function ...
awslocal lambda invoke ...
awslocal lambda list-functions
Quiz de Final de Lab
- Qual é a porta padrão do LocalStack?
- Qual opção do AWS CLI permite apontar para o LocalStack?
- Qual comando cria um bucket S3?
- Como verificar se o LocalStack está funcionando?
- Por que usamos credentials "test" com o LocalStack?
Parabéns! Você configurou seu ambiente AWS. Você está pronto para o MÓDULO 2!