Skip to content

Encurtador de URL Java com AWS Lambda, Amazon S3 e Amazon Api Gateway.

License

Notifications You must be signed in to change notification settings

lucaspanizio/url-shortener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Url Shortener

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

☝ Pré-Requisitos

➡️ Ter uma conta na AWS
➡️ Ter o JDK 17 ou posterior instalado


🛠️ Como configurar

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

1. Criação de um Bucket S3

Crie um bucket no Amazon S3 com as configurações padrão.


2. Criação da Função Lambda ShortUrlGenerator

Crie uma função Lambda chamada ShortUrlGenerator com a linguagem Java.

⚠️ Certifique-se de selecionar a versão do Java compatível com o projeto. Por padrão, o projeto utiliza Java 17, mas você pode ajustar essa configuração no arquivo 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.

2.1. Criação da Função Lambda ShortUrlResolver

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.


3. Configuração de Variáveis de Ambiente

  1. Para ambas as funções Lambda (ShortUrlGenerator e ShortUrlResolver), adicione uma variável de ambiente chamada S3_BUCKET_NAME e valor igual ao nome do bucket S3 definido no passo 1.

4. Configuração do API Gateway

  1. Crie uma instância do Amazon API Gateway do tipo HTTP com as opções padrão.

  2. 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.
  3. Conceda permissão em ambas as integrações ao API Gateway para invocar as funções Lambda.


⚡Como utilizar

POST para criar o short code da URL

Recebe a URL original e o timestamp em segundos da data de expiração do short code que será gerado.

GET para obter a URL original (sem param query)

Recebe como param path o short code da URL e retorna o link original.

GET para obter a URL original (com param query)

Com o param query redirect=T você será automaticamente redirecionado para o link original.

GET com time expirado)

Após o tempo de expiração estipulado ao criar o short code, a resposta será essa.


📜 Licença

Esse projeto está sob a licença MIT.
License

Desenvolvido por José Lucas Panizio 🖖

Linkedin Badge Gmail Badge

About

Encurtador de URL Java com AWS Lambda, Amazon S3 e Amazon Api Gateway.

Topics

Resources

License

Stars

Watchers

Forks

Languages