Skip to content

Projeto destinado ao estudo do Quarkus para execução em ferramentas serverless, como AWS Lambda e Knative, será desenvolvido a implementação para as duas ferramentas

License

Notifications You must be signed in to change notification settings

lucas-silvs/quarkus--estudo-serverless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quarkus--estudo-serverless

Projeto destinado ao estudo do Quarkus para execução em ferramentas serverless, como AWS Lambda e Knative, será desenvolvido a implementação para as duas ferramentas.

Pré-requisitos

  • Java 17
  • Gradle 8.2.1
  • Docker
  • AWS SAM CLI

Execução

AWS Lambda

Para o lambda, será utilizado a biblioteca quarkus-aws-lambda, onde será criado um Handler para a função lambda.

Execução local

Configuração do banco de dados em Docker

Para execução local, deve ser criado um container com o banco de dados MySQL, para isso, deve ser executado o comando abaixo na pasta ./mysql docker:

docker-compose up

com isso será criado um usuário de acesso para a aplicação.

AWS SAM CLI

Para execução local, deve primeiro realizar o build com o comando abaixo:

gradle clean build

Após o build, deve ser alterado o arquivo sam.jvm.yaml, que está dentro da pasta ./build/ que foi gerada com o build do projeto, esse ajuste é necessário para utilizar o Java 17 com o Lambda, conforme o exemplo abaixo:

# ...configurações omitidas
Resources:
  QuarkusServerlessResetSenha:
    Type: AWS::Serverless::Function
    Properties:
      Handler: io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest
      Runtime: java11 # alterar para o valor java17
      CodeUri: function.zip
      MemorySize: 256
      Timeout: 15
      Policies: AWSLambdaBasicExecutionRole

Após a alteração, com o AWS SAM CLI, deve executar o comando abaixo para realizar o deploy da função lambda:

 sam local invoke --docker-network mysql-network --template build/sam.jvm.yaml --event src/main/resources/payload.json

Referências

About

Projeto destinado ao estudo do Quarkus para execução em ferramentas serverless, como AWS Lambda e Knative, será desenvolvido a implementação para as duas ferramentas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published