Aplicação back-end em Java que utiliza AWS Lambda, Amazon S3 e Amazon API Gateway para encurtamento de URLs. A aplicação gera um código único para cada URL fornecida e também realiza o processo inverso, retornando a URL original com base no código fornecido.
☝ Pré-requisitos |
🛠️ Como configurar |
⚡Como utilizar |
📜 Licença
➡️ Ter uma conta na AWS
➡️ Ter o JDK 17 ou posterior instalado
Clone este repositório
git clone https://github.com/lucaspanizio/url-shortener.git
Acesse o diretório da aplicação
cd url-shortener
Instale as dependências. Pode fazer isso por meio da IDE ou por meio de linha de comando se tiver o mvn instalado de forma global.
mvn clean install
Compile a aplicação. Novamente isso pode ser feito via IDE ou linha de comando.
mvn clean package
Configurações AWS
Crie um bucket no Amazon S3 com as configurações padrão.
Crie uma função Lambda chamada ShortUrlGenerator
com a linguagem Java.
pom.xml
.
Configurações:
- Habilite a URL da função Lambda.
- Tipo de autenticação: NONE (sem autenticação).
- Utilize as demais configurações padrão.
- Modifique o manipulador da função para:
com.rocketseat.ShortUrlGenerator::handleRequest
. - Acesse o papel de execução (IAM Role) associado à função e Criar política em linha com permissões para:
s3:GetObject
s3:PutObject
s3:ListBucket
- Especifique a ARN do bucket criado na etapa anterior.
- Compile a aplicação e faça upload do arquivo
.jar
gerado.
Repita os passos acima para criar uma segunda função Lambda chamada ShortUrlResolver
. A única diferença deve ser o manipulador da função, para esta função defina-o como:
com.rocketseat.ShortUrlResolver::handleRequest
.
- Para ambas as funções Lambda (
ShortUrlGenerator
eShortUrlResolver
), adicione uma variável de ambiente chamadaS3_BUCKET_NAME
e valor igual ao nome do bucket S3 definido no passo 1.
-
Crie uma instância do Amazon API Gateway do tipo HTTP com as opções padrão.
-
Configure as rotas na API Gateway:
- POST /:
- Integração: Função Lambda.
- ARN: Função Lambda
ShortUrlGenerator
.
- GET /{urlCode}:
- Integração: Função Lambda.
- ARN: Função Lambda
ShortUrlResolver
.
- POST /:
-
Conceda permissão em ambas as integrações ao API Gateway para invocar as funções Lambda.
Esse projeto está sob a licença MIT.